辗转相除法(既约分数)

简介: 辗转相除法(既约分数)

(12,8)->(8,4)->(4,0)

(12,7)->(7,5)->(5,2)->(2,1)->(1,0)

一般用来求两个数的最大公约数

本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。

如果一个分数的分子和分母的最大公约数是 11,这个分数称为既约分数。

例如 \frac{3}{4} ,\frac{1}{8} ,\frac{7}{1}43,81,17, 都是既约分数。

请问,有多少个既约分数,分子和分母都是 11 到 20202020 之间的整数(包括 11 和 20202020)?

运行限制


最大运行时间:2s

最大运行内存: 128M


import java.util.Scanner;
// 1:无需package
// 2: 类名必须Main, 不可修改
public class Main {
    public static void main(String[] args) {
      int count=0;
        for(int i=1;i<2021;i++){
          for(int j=1;j<2021;j++){
            if(f(i,j)==1){
              count++;
            }
          }
    }
    System.out.println(count);
}
public static int f(int a,int b){
   if(b==0){
     return a;
   }
   return f(b,a%b);
}
}
相关文章
|
6月前
|
算法
求最大公约数和最小公倍数的算法
求最大公约数和最小公倍数的算法
70 0
|
2月前
|
移动开发 算法
求其最大公约数和最小公倍数
求其最大公约数和最小公倍数。
66 5
|
3月前
【刷题记录】最大公因数,最小公倍数(辗转相除法、欧几里得算法)
【刷题记录】最大公因数,最小公倍数(辗转相除法、欧几里得算法)
|
6月前
PTA-统计素数并求和
该程序统计并计算1至500之间整数M和N区间内的素数个数和。输入为两正整数M和N,输出为素数个数和它们的和。例如输入10 31,输出7 143。代码通过遍历区间,检查每个数是否能被2到自身-1之间的数整除,若不能则为素数,将其加入列表,最后输出列表长度(素数个数)和列表元素之和(素数和)。
68 0
|
6月前
分数1/1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100 求和
分数1/1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100 求和
76 0
|
6月前
PTA-第4章-2 统计素数并求和
该代码用于统计并求和给定区间[M, N](1≤M≤N≤500)内的素数。输入包含两整数M和N,输出为素数个数和它们的和。例如,输入10 31,输出7 143。代码通过遍历区间,检查每个数是否能被小于它的数整除来判断是否为素数。
72 0
|
6月前
|
算法 测试技术 C#
【数学】【数论】【最大公约数】1819. 序列中不同最大公约数的数目
【数学】【数论】【最大公约数】1819. 序列中不同最大公约数的数目
|
6月前
|
算法 Python
最小公倍数算法
最小公倍数算法
|
算法
求最大公约数和最小公倍数的几种算法
求最大公约数和最小公倍数的几种算法
144 0