EularProject 73:Counting fractions in a range

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zhangzhengyi03539/article/details/78508178

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;
}

猜你喜欢

转载自blog.csdn.net/zhangzhengyi03539/article/details/78508178