C语言实现欧拉函数

Python019

C语言实现欧拉函数,第1张

int eular(int n)

{

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//返回你的默认值

}

当然这里返回值,需要你根据逻辑自己调整为合适的值。