链接:http://acm.hdu.edu.cn/showproblem.php?pid=2608
题目意思: 给你一个数组T(N),存N所有正因子之和。
另一个数组 S(N )为 T(1)+T(2)……T(N)之和,
最后求S(n)对2取余的值。
这道题有点意思。自己没做出来。题目一看就感觉找规律,打了表,还是没看出来。
最后看了大牛们的思路,A 了。
附一个简单的。
凡是“能够被完全开方”或者“被2整除后能够完全被开方”的数,它的 (T(N) % 2) 都是 1。(好牛!!)
自己的代码:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <string.h>
int main()
{
__int64 x,y,z;
int n;
scanf("%d",&n);
while(n--)
{
z=0;
scanf("%I64d",&x);
for(y=1;y<=x;y++)
{
if(y*y<=x )
z++;
if( y*y*2<=x)
z++;
if(y*y>x)
break;
}
z=z%2;
printf("%I64d\n",z);
}
return 0;
}