奇因数:一整数被另一整数整除,后者即是前者的因数,则因数中的奇数则是奇因数。
如1,2,4都为8的因数 而奇因数为1。
1.说明:
定义正整数m的奇因数f(m):
(1).若m为奇数,f(m)=m;
(2).若m为偶数,f(m)为m去除其所有偶因数后的奇因数;
例如f(6)=3,f(7)=7,f(8)=1。
奇因数代数和:s(n)=<n>Σ<m=1>(-1)^(m-1)f(m)
2.程序设计:
#include<stdio.h>
void main()
{
int t,m,n;
long s;
printf("请输入一个整数n:");
scanf("%d",&n);
s=0; /*和s清零*/
for(m=1;m<=n;m++)
{
if(m%2>0)
s+=m; /*奇数m累加到s*/
else
{
t=m;
while(t%2==0)
t/=2; /*去除偶数m的偶因数*/
s-=t;
}
}
printf("s(%d)=%ld\n",n,s); /*按公式输出和s*/
getch();
}
3.程序运行示例及注意事项:
请输入一个整数n:2017
s(2017)=679351
注意:去除偶数m的所有偶因数必须在循环中实现,不可能通过简单的一次试除运算实施去除。