(Problem 73)Counting fractions in a range

时间:2022-09-03 14:17:38

Consider the fraction, n/d, where n and d are positive integers. If n(Problem 73)Counting fractions in a ranged and HCF(n,d)=1, it is called a reduced proper fraction.

If we list the set of reduced proper fractions for d (Problem 73)Counting fractions in a range 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 (Problem 73)Counting fractions in a range 12,000?

题目大意:

考虑分数 n/d, 其中n 和 d 是正整数。如果 n(Problem 73)Counting fractions in a ranged 并且最大公约数 HCF(n,d)=1, 它被称作一个最简真分数。

如果我们将d (Problem 73)Counting fractions in a range 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 (Problem 73)Counting fractions in a range 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: acutus@126.com)
// 博客地址: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 = ;
for(i = ; i <= N; i++) {
a = i / ; b = i / ;
for(j = a + ; j < b + ; j++) {
if(gcd(i, j) == )
ans++;
}
}
printf("%d\n", ans);
} int main()
{
solve();
return ;
}
Answer:
7295372