欧拉函数

int ol (int x)
{
	int ans = 1;
	for (int i = 1; prime[i] * prime[i] <= tot ; i + +)
	{
		if (x % prime[i] == 0)
		{
			ans * = (prime[i] - 1);
			x / = prime[i];
			while (x % prime[i] == 0)
			{
				x / = prime[i];
				ans * = prime[i];
			}
		}
	}
	return x > 1 ? x - 1 : ans;
}

 

 

posted @ 2017-07-31 15:55  ioioioioioio  阅读(127)  评论(0编辑  收藏  举报