算法题每日一练---第19天:既约分数

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

一、问题描述


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

例如3/4,1/8,7/1 都是既约分数。


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


二、题目要求


考察

最大公约数、公倍数
建议用时15~25min

三、问题分析

判断一个分数是不是既约分数,要利用双重for循环分别判断分子和分母的约数,比如上面

3的公约数为1、3,4的公约数为1、2、4,两者的公约数为1,符合上述条件。

而8的约数为1 2 4 8,4的约数为1 2 4,4和8的最大公约数为4,不符合条件。

对于两个数字判断他们得到最大公约数,可以单独构造一个函数:

intgcd(intx,inty)//构造单独函数{
if(x%y==0) returny;//如果x%y没有余数,返回最大公约数yelsereturngcd(y,x%y);//重新调用计算}


举例:

假设上面的x,y分别为10、8,10%8==2,把原来的8赋值到x,取模之后的2复制到y。

现在x,y分别变成8,2,8%2==0,结束输出结果。


拓展

1.C++头文件,algorithm之中包含最大公约数__gcd(a,b),直接使用即可

2.最小公倍数:在求出最大公约数的基础上,原来给定的两个数字相乘/最大公约数。上面给定的是10 8,最大公约数是2,所以最小公倍数:10*8/2=40。

四、编码实现

#include<iostream>usingnamespacestd;
intgcd(intx,inty)//最大公约数判断{
if(x%y==0) returny;//取模等于0,返回结果elsereturngcd(y,x%y);//重新调用计算}
intmain()
{
inti,j,n=2022;//初始化条件longlongintans=0;//ans定义为0for(i=1;i<=n;i++)//第一层for循环    {
for(j=1;j<=n;j++)//第二层for循环        {
if(gcd(i,j)==1)//判断i ,j的最大公约数是否为1            {
ans++;//判断成功,ans++            }
        }
    }
cout<<ans;//输出结果return0;
}

五、输出结果

输出结果为:2486423


相关文章
|
1月前
|
算法 Java 程序员
【算法每日一练及解题思路】有n级台阶,一次只能上1级或2级,共有多少种走法?
本文深入解析了“爬楼梯问题”,探讨了递归与迭代两种解法,并提供了Java代码实现。通过分析问题本质,帮助读者理解动态规划技巧,提高解决实际编程问题的能力。关键词:Java, 算法, 动态规划, 爬楼梯问题, 递归, 迭代。
66 0
|
6月前
|
算法 测试技术 C#
【滑动窗口】【差分数组】C++算法:K 连续位的最小翻转次数
【滑动窗口】【差分数组】C++算法:K 连续位的最小翻转次数
|
6月前
|
算法 vr&ar 图形学
☆打卡算法☆LeetCode 166. 分数到小数 算法解析
☆打卡算法☆LeetCode 166. 分数到小数 算法解析
|
算法
白话Elasticsearch26-深度探秘搜索技术之function_score自定义相关度分数算法
白话Elasticsearch26-深度探秘搜索技术之function_score自定义相关度分数算法
116 0
|
算法 Java
白话Elasticsearch24- 深度探秘搜索技术之TF&IDF算法/向量空间模型算法/lucene的相关度分数算法
白话Elasticsearch24- 深度探秘搜索技术之TF&IDF算法/向量空间模型算法/lucene的相关度分数算法
95 0
|
算法 Java vr&ar
【差分数组】还不懂差分数组?蓝桥杯算法模板题小明的彩灯解析
文章目录 1.算法背景 2.差分数组 2.1 什么是差分数组? 2.2 差分数组的性质 3 例题——小明的彩灯 3.1 题目分析 3.2 参考代码(Java) 3.3 实现结果
【差分数组】还不懂差分数组?蓝桥杯算法模板题小明的彩灯解析
|
算法
【Day26】LeetCode算法刷题 [856. 括号的分数 ] [234. 回文链表]
学习LeetCode算法刷题 [856. 括号的分数 ] [234. 回文链表]。
196 0
【Day26】LeetCode算法刷题 [856. 括号的分数 ] [234. 回文链表]
|
算法
算法题每日一练---第78天:二分查找
给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target
192 1
算法题每日一练---第78天:二分查找