首页 > 其他 > 详细

(Problem 73)Counting fractions in a range

时间:2014-02-20 15:36:17      阅读:332      评论:0      收藏:0      [点我收藏+]

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

If we list the set of reduced proper fractions for d bubuko.com,布布扣 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 bubuko.com,布布扣 12,000?

题目大意:

考虑分数 n/d, 其中n 和 d 是正整数。如果 nbubuko.com,布布扣d 并且最大公约数 HCF(n,d)=1, 它被称作一个最简真分数。

如果我们将d bubuko.com,布布扣 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 bubuko.com,布布扣 12,000的升序真分数列表中,1/3和1/2之间有多少个分数?

bubuko.com,布布扣
//(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 = 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;
}
bubuko.com,布布扣
Answer:
7295372

(Problem 73)Counting fractions in a range

原文:http://www.cnblogs.com/acutus/p/3556853.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!