7-47 欧拉函数 (10 分)
在数论中,对正整数n,欧拉函数ϕ(n)是小于或等于n的正整数中与n 互质的数的数目。此函数以其首名研究者欧拉命名,它又称为φ函数(由高斯所命名)
输入格式:
一个正整数n。
输出格式:
一个数,表示欧拉函数ϕ(n)。
输入样例:
10
输出样例:
4
注释:表示10以内有4个数与10 互质,它们是:1,3,7,9
ϕ(n)=ni=1∏r(1−1/pi), 其中,其中p1,p2……pr为n的所有质因数
欧拉函数 (10 分)_他不是混子QAQ的博客-CSDN博客写的很好
#include<bits/stdc++.h>
using namespace std;
int prime(int x) {
for(int i=2; i<=sqrt(x); i++) {
if(x%i==0) return 0;
}
return 1;
}
int main() {
int a;
cin>>a;
if(prime(a)) {
cout<<a-1;
return 0;
} else {
int x=a;
for(int i=2; i<=a; i++) {
if(prime(i)) {
if(a%i==0) x=x*(i-1)/i;
while(a%i==0) a=a/i;
}
}
cout<<x;
}
return 0;
}