{
int ret=1,i //定义变量
for(i=2i*i<=ni++) //从i=2开始循环,判定条件为i*i小于等于n,循环一次i增加1
if(n%i==0) //判定条件为n除以i的余数等于0
{
n/=i,ret*=i-1 //n=n/i,ret = ret*(i-1)
while(n%i==0) //当n除以i的余数等于0时执行下面的语句,否则跳过
n/=i,ret*=i
}
if(n>1) //如果n>1执行下面语句,否则跳过
ret*=n-1 //ret = ret*(n-1)
return ret
}
直接复制的百度百科的,没具体看是什么功能
ss(int x)的函数定义出现错误。
1)for 初始化变量时,第二个y前面的int不需要.
2)for循环中,需要把后面语句加在花括号里面才能,否则第一个if语句成为for语句循环体,后面不可访问y变量。
可以修改为:
int ss(int x){
for(int d=2,y=0d<xd++)
{
if(x % d == 0)
y++
if(y == 0)
return 1
else
return 0
}
return 0//返回你的默认值
}
当然这里返回值,需要你根据逻辑自己调整为合适的值。