首页 > 其他 > 详细

洛谷 P1876 开灯

时间:2017-11-07 17:27:18      阅读:354      评论:0      收藏:0      [点我收藏+]

传送门

技术分享

技术分享

这道题凭什么是技术分享

就因为它代码短?!

还是我太菜了...

第$i$盏灯的开关与否只由其约数个数决定,又有约数公式:

当$n=p_1^{a_1}p_2^{a_2}...p_n^{a_n}$时,
约数个数$=(a_1+1)(a_2+1)...(a_n+1)$
要使灯亮着,则$(a_1+1)(a_2+1)...(a_n+1)$是奇数。
于是$a_1, a_2, a_3, ... a_n$都是偶数。
所以$n=m^2, m=p_1^{a_1/2}p_2^{a_2/2}...p_n^{a_n/2}$
于是所有的完全平方数都满足条件。

Code:

#include<bits/stdc++.h>
#define RG register
using namespace std;
long long n;
int main()
{
    scanf("%lld", &n);
    for(RG long long i=1;i<=(long long)sqrt(n);i++) printf("%lld ", i*i);
    return 0;
}

 

洛谷 P1876 开灯

原文:http://www.cnblogs.com/cj-xxz/p/7799674.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!