JohnLawes 2021-09-22 16:03 采纳率: 25%
浏览 77

求分母为n的最简真分数个数

public class ProperFractions {
  public static long properFractions(long n) {
    if (n==1) return 0;
    long r=n;
    for(long d=2;d*d<=n;d++){
        if(n%d == 0){
            while(n%d == 0){
                n/=d;
            }
            r-=r/d;
          }
    }
    if(n>1) r-=r/n;
    return r;
  }
}

这段代码为什么可以求分母为n的最简真分数个数。

  • 写回答

2条回答 默认 最新

  • 於黾 2021-09-22 16:07
    关注

    所谓最简真分数
    首先它是真分数,分子不能比分母大
    最简,不能简化,也就是分子不是分母的因子
    不是因子就是不能整除
    理解了题意再看代码

    评论

报告相同问题?

问题事件

  • 修改了问题 9月22日
  • 修改了问题 9月22日
  • 创建了问题 9月22日