1.程序说明
输入:正整数m
输出:m的欧拉函数
运行结果:

2.实现思路
欧拉函数
对正整数n,欧拉函数是小于n的正整数中与n互质的数的个数
求最大公因数(用于判断互质)
int maxi(int a ,int b) {
int i = 0;
while (b != 0) {
i = a % b;
a = b;
b = i;
}
return a;
}//求最大公因数的函数
实现思路是辗转相除法,参考此博文
求欧拉函数
依次统计与n互质的数的个数即可
3.完整代码
#include<iostream>
using namespace std;
int maxi(int a ,int b) {
int i = 0;
while (b != 0) {
i = a % b;
a = b;
b = i;
}
return a;
}//求最大公因数的函数
int main() {
int m;
cin >> m;
int sum = 0;
for (int t = 1; t < m; t++) {
if (maxi(m, t) == 1) {
sum++;
}
}
cout << "欧拉函数值为:" << sum;
}