【题意】
给定数N,求S(N)%2,其中S(N)=T(1)+T(2)+……+T(N),其中T(N)表示数N的因子和。
【前话】
队友推荐的这一题,当时想的是可以寻规律,打了个长度为N的表,压根没发现什么规律,不过却发现T(N)的一个特点,N=1,2,4,8,9,16,18,25,32,36,49,50,64……时T(N)%2==1,其余的都是0,结果见下表。
T(N)%2
S(N)
即S(N)=
【分析】
我后来列了N=10;
1
1
1
1
1
1
1
1
1
1
注意到不要单行相加,按列来加,有10个1,5个2,3个3,2个4和5,1个6,7,8,9,10,看到这里,我立刻就醒过省来了,和fzu1988求个数如出一辙(见我的上一篇文章)。
10/1=10,10/10=1,
10/2=5,10/5=2,
10/3=3,10/3=3,s+=
10/4=2,10/2=5,s+=
10/6=1,10/10=1,s+=
【后话】
交完125MS,只有百度看那些0MS的怎么写,结果是吓一跳,别人打表到50就出了规律,话说我的打到10000我也没怎么看出,Orz!
“凡是“能够被完全开方”或者“被2整除后能够完全被开方”的数,它的
三、代码
#include<stdio.h>
int
{
for(i=2;i<=x;)
{
}
int
{
}
【参考代码1】
#include
//数为1的是某数的平方或某数平方的2倍,之前结果之和取余2
#include<math.h>
int
}