Consider the fraction, n/d, where n and d are positive integers. If nd 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?
题目大意:
考虑分数 n/d, 其中n 和 d 是正整数。如果 nd 并且最大公约数 HCF(n,d)=1, 它被称作一个最简真分数。
如果我们将d 8的最简真分数按照大小的升序列出来,我们得到:
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
可以看出1/3和1/2之间共有3个分数。
在d 12,000的升序真分数列表中,1/3和1/2之间有多少个分数?
//(Problem 73)Counting fractions in a range // Completed on Wed, 19 Feb 2014, 16:34 // Language: C11 // // 版权所有(C)acutus (mail: [email protected]) // 博客地址:http://www.cnblogs.com/acutus/ #include<stdio.h> #define N 12000 int gcd(int a, int b) //求最大公约数函数 { int r; while(b) { r = a % b; a = b; b = r; } return a; } void solve() { int a, b, i, j, ans; ans = 0; for(i = 5; i <= N; i++) { a = i / 3; b = i / 2; for(j = a + 1; j < b + 1; j++) { if(gcd(i, j) == 1) ans++; } } printf("%d\n", ans); } int main() { solve(); return 0; }
Answer:
|
7295372 |