poj传送门
简单的求
φ(n)
,复习了一下模板
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<cmath>
#define ms(i,j) memset(i,j, sizeof i);
using namespace std;
int phi(int n)
{
int m = sqrt(n+0.5);
int ans = n;
for (int i=2;i<=m;i++)
if (n%i==0)
{
ans = ans/i*(i-1);
while (n%i==0) n /= i;
}
if (n>1) ans = ans/n*(n-1);
return ans;
}
int main()
{
int n;
while (scanf("%d", &n)==1 && n)
{
printf("%d\n", phi(n));
}
return 0;
}

本文介绍了一个简单的C++程序,用于计算欧拉函数φ(n)。该程序使用了模板方法,通过质因数分解来计算任意正整数n的欧拉函数值,并附带了一个完整的代码示例。
1149

被折叠的 条评论
为什么被折叠?



