zoukankan      html  css  js  c++  java
  • Problem 71:Ordered fractions

    Problem 71:Ordered fractions

    题目链接:http://static.projecteuler.net/problem=71

    题目大意:将所有形如$frac{n}{d}(d leqslant 1,000,000)$的最简真分数按大小升序排列,求此时$frac{3}{7}$直接左邻的分数的分子。

    法里数列

    $n$阶法里数列是$0$和$1$之间最简分数的数列,由小至大排列,每个分数的分母不大于$n$。

    设$F_n$为$n$阶法里数列,则有如下性质:

    • $|F_n|=|F_{n-1}|+varphi (n)$.

    因为$F_n$仅比$F_{n-1}$多了$E={frac{p}{n}:(p,n)=1}$,其中$|E|=varphi (n)$。由$|F_1|=2,$可推出$|F_n|=1+sum_{i=1}^n varphi(n)$.

    • 若$frac{a}{b}$和$frac{c}{d}$是某$k$阶法里数列的相邻项,且$frac{a}{b} < frac{c}{d}$,则它们之差为$frac{1}{bd}$,也就是说$bc-ad=1$。反之同样成立:若$frac{a}{b}$,$frac{c}{d}$均为真分数,且$frac{a}{b} < frac{c}{d}$,$bc-ad=1$,则有$frac{a}{b}$和$frac{c}{d}$在$k$阶法里数列中是邻项,$k=max{b,d}$.
    • 若$frac{a}{b}$和$frac{c}{d}$是某$k$阶法里数列的相邻项,随着$k$增大,$frac{a}{b}$和$frac{c}{d}$间出现的第一项为$frac{a+c}{b+d}$.

    这里用到了法里数列的第三条性质。

    代码如下:

     1 #include <iostream>
     2 using namespace std;
     3 int main(void){
     4     int a=2,b=5;
     5     while(b+7<=1000000){
     6         a+=3;
     7         b+=7;
     8     }
     9     cout<<a;
    10 }
  • 相关阅读:
    shell基础命令
    UITest 单元测试常用的断言
    UIColor 使用起来的坑
    appledoc 使用brew命令安装使用
    appledoc 使用
    Xcode升级 Alcatraz 无法使用
    APP多语言环境支持
    VVDocumenter 使用
    NSDate NSString相互转化
    iOS 常见设计模式
  • 原文地址:https://www.cnblogs.com/barrier/p/6606117.html
Copyright © 2011-2022 走看看