码迷,mamicode.com
首页 > 其他好文 > 详细

Project Euler:Problem 72 Counting fractions

时间:2015-07-17 16:24:15      阅读:121      评论:0      收藏:0      [点我收藏+]

标签:project euler   c++   欧拉函数   

Consider the fraction, n/d, where n and d are positive integers. If n<d and HCF(n,d)=1, it is called a reduced proper fraction.

If we list the set of reduced proper fractions for d ≤ 8 in ascending order of size, we get:

1/8, 1/7, 1/6, 1/5, 1/4, 2/7, 1/3, 3/8, 2/5, 3/7, 1/2, 4/7, 3/5, 5/8, 2/3, 5/7, 3/4, 4/5, 5/6, 6/7, 7/8

It can be seen that there are 21 elements in this set.

How many elements would be contained in the set of reduced proper fractions for d ≤ 1,000,000?



统计2-1000000之间每个数的欧拉函数

#include <iostream>
using namespace std;

int getEuler(int n)
{
	int m = n;
	int p = 2;
	int k = 0;
	while (p*p <= n)
	{
		k = 0;
		while (n%p == 0)
		{
			n /= p;
			k++;
		}
		if (k >= 1)
			m = m / p*(p - 1);
		p++;
	}
	if (n > 1)
		m = m / n*(n - 1);
	return m;
}

int main()
{
	unsigned long long count = 0;
	for (int i = 2; i <= 1000000; i++)
	{
		count += getEuler(i);
	}
	cout << count << endl;
	system("pause");
	return 0;
}


版权声明:本文为博主原创文章,未经博主允许不得转载。

Project Euler:Problem 72 Counting fractions

标签:project euler   c++   欧拉函数   

原文地址:http://blog.csdn.net/youb11/article/details/46926551

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!