HDU 1286(找新朋友)

计算 N 的欧拉函数,欧拉函数求 1~N 中与 N 互质的数的个数,套用模板即可。

#include <iostream>
using namespace std;

//计算n的欧拉函数
int eular(int n)
{
	int ans = n;
	for (int i = 2; i * i <= n; i++)
	{
		if (n % i == 0)
		{
			ans = ans / i * (i - 1);
			while (n % i == 0) //完全消除质因子i
				n /= i;
		}
	}
	if (n > 1) //n本身为质数,没有除本身外的质因子
		ans = ans / n * (n - 1);
	return ans;
}

int main()
{
	int CN;
	cin >> CN;
	int N;
	while (CN--)
	{
		cin >> N;
		cout << eular(N) << endl;
	}
	return 0;
}

继续加油。

发布了206 篇原创文章 · 获赞 1 · 访问量 8977

猜你喜欢

转载自blog.csdn.net/Intelligence1028/article/details/104861744
今日推荐