一、歐拉函數
貼一下百度百科
在數論,對正整數n,歐拉函數是小於n的正整數中與n互質的數的數目(φ(1)=1)。此函數以其首名研究者歐拉命名(Euler's totient function),它又稱爲Euler's totient function、φ函數、歐拉商數等。 例如φ(8)=4,因爲1,3,5,7均和8互質。
所以通過歐拉函數可以很方便快捷的找出小於n的與n互質的數的個數
int euler(int n) //求n的歐拉函數
{
int num=n;
for(int i=2;i*i<=n;i++){
if(n%i==0){
num=num/i*(i-1);
while(n%i==0)
n/=i;
}
}
if(n>1)
num=num/n*(n-1);
return num;
}