EularProject 73:Counting fractions in a range
阿新 • • 發佈:2018-12-23
Andrew Zhang
Nov 11, 2017
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 3 fractions between 1/3 and 1/2.
How many fractions lie between 1/3 and 1/2 in the sorted set of reduced proper fractions for d ≤ 12,000?
Answer:
7295372
Completed on Fri, 10 Nov 2017, 17:45
Code:
#include <iostream>
using namespace std;
int gcd(int a, int b)
{
int c = a % b;
if(c == 0) {
return b;
} else {
return gcd(b, c);
}
}
int main()
{
int d = 12000;
int result = 0;
for(int i = 4; i <= d; i++) {
int n1 = i / 3;
int n2 = i / 2;
for(int j = n1; j <= n2; j++) {
if((3 * j <= i) || (2 * j == i)) {
continue;
}
if(gcd(i, j) == 1) {
//cout<<j<<" "<<i<<endl;
result++;
}
}
}
cout<<result<<endl;
system("pause");
return 0;
}