这是自己写的程序,请在此基础上改动,我用的是C++6.0,谢谢。(我的程序只能输入一个值,要求一次性输入多组数据)
#include <stdio.h>
int main()
{
int i,n,j=1,k=-1;
scanf("%d",&n);
for(i=1;i<n;i++)
if(n%i!=0)
j=j+1;
else
k=k+1;
if(n%2==0)
j=j-k+1;
else
j=j-k;
printf("%d ",j);
printf("\n");
return 0;
}
亲,结果貌似不对了,比如输入9的解结果就不一样了。
追答#include <stdio.h>太棒了,谢谢,我看了之后自己以后就会写了。
"LK的数学题"de C语言版解答。欧拉函数还没学,所以就用了其他方法。
追答一次性输入多组数据要么用while循环输入
要么就输入字符串,然后解析得到参数
自己试过用w'hile 循环,但是结果就不对了,数据无法回到原始数据再次运算。
追答因为你在计算过一次之后 并没有还原初始变量吧
比如j和k没有改为1和-1
所以导致结果偏差
恩恩,是这个问题,已经解决了,谢谢。