判断一个分数是否为既约分数的算法(既约分数是指 分数的分子和分母的最大公约数是1 ,也称为最简分数)
最简分数,是分子、分母只有公因数1的分数,或者说分子和分母互质的分数,又称既约分数

以下为2段代码,第一段是我一开始自己写的,第二段是网上看到的运用的数学家欧里几得的辗转相除法,第二段代码建议读者背诵。它设计的很灵活,第一段代码简明易懂,但在计数较大数值时花费时间较长,第二段代码可以快速计算和判断。

(暴力枚举法)

#include<stdio.h>
//判断一个分数是否为既约分数的算法(既约分数是指 分数的分子和分母的最大公约数是1 ,也称为最简分数)
//最简分数,是分子、分母只有公因数1的分数,或者说分子和分母互质的分数,又称既约分数 int gcd(int a,int b)
{int i,flat=0,n;(a>b)?(n=b):(n=a);for(i=2;i<=n;i++){if(a%i==0&&b%i==0){    flat=1; break;}}return flat;}
int main()
{//  a/b  a为分子,b为分母; int a,b;scanf("%d%d",&a,&b);if(gcd(a,b)==0)printf("yes\n");else printf("no\n") ;} 

(辗转相除法)

#include<stdio.h>
//判断一个分数是否为既约分数(既约分数是指 分数的分子和分母的最大公约数是1 ,也称为最简分数)
//最简分数,是分子、分母只有公因数1的分数,或者说分子和分母互质的分数,又称既约分数 //在数学中,辗转相除法,又称欧几里得算法(英语:Euclidean algorithm)
//是求最大公约数的算法。辗转相除法首次出现于欧几里得的《几何原本》(第VII卷,命题i和ii)中
//而在中国则可以追溯至东汉出现的《九章算术》//核心
//两个整数的最大公约数是能够同时整除它们的最大的正整数。
//辗转相除法基于如下原理:两个整数的最大公约数等于其中较小的数和两数的差的最大公约数。
//例如,252和105的最大公约数是21
//252-105=147 147是两个数的差,147和105的最大公约数是21
int gcd(int a,int b)
{if(a%b==0)return b;elsereturn gcd(b,a%b);
}
int main()
{//  a/b  a为分子,b为分母; int a,b;scanf("%d%d",&a,&b);if(gcd(a,b)==1)//如果 b(指在gcd函数中 b,是除数,也是最大公约数) 为1printf("yes\n");else printf("no\n") ;} 

这个是我自己根据辗转相除法设计的计算2个数最大公约数的算法代码

//辗转相除法基于如下原理:两个整数的最大公约数等于其中较小的数和两数的差的最大公约数。
#include<stdio.h>
int main()
{int a,b,n,t;scanf("%d%d",&a,&b);if(a<b)//确保输入的2个数 a是大的 b是小的 {t=b;b=a;a=t;}if(a%b==0)//a为被求余数,b为除数,如果求余为0,则除数b为最大公约数 ;else while(a%b!=0)//否则使用辗转相除法 求余的数一定是比b小的//重新交换位置,把余数赋给b,把b赋给a {t=b;b=a%b;a=t;}printf("最大公约数是:%d",b);//除数是最大公约数 } 

判断是否是最简分数(既约分数)(辗转相除法)(暴力枚举)相关推荐

  1. 【蓝桥杯】 C++ 既约分数

    文章目录 题目描述 实现代码 解题思路 注意点 题目描述 本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可. 如果一个分数的分子和分母的最大公约数是 1,这个分数称为既约分数. ...

  2. 既约分数 欧几里得算法/辗转相除法

    欧几里得算法又称辗转相除法,是指用于计算两个非负整数a,b的最大公约数.计算公式gcd(a,b) = gcd(b,a % b). public class count {     public sta ...

  3. 辗转相除法(既约分数)

    (12,8)->(8,4)->(4,0) (12,7)->(7,5)->(5,2)->(2,1)->(1,0) 一般用来求两个数的最大公约数 本题为填空题,只需要算 ...

  4. 蓝桥杯——既约分数(c语言)

    目录 一.题目描述 二.思路分析 1.分析题意: 2.解题思路: 三.算法实现 四.算法改进 一.题目描述 本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可. 如果一个分数的分子 ...

  5. 2020年蓝桥杯省赛题目——既约分数

    题目:如果一个分数的分子和分母的最大公约数是 1,这个分数称为既约分数. 例如4/3​,8/1​,1/7​, 都是既约分数. 请问(分子和分母都是 1 到 2020 之间的整数)有多少个既约分数?(包 ...

  6. 蓝桥杯_既约分数_java

    既约分数 题目描述 本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可. 如果一个分数的分子和分母的最大公约数是 1,这个分数称为既约分数. 例如3/4 ,1/8 ,7/1 , 都 ...

  7. 既约分数(python)

    题目描述 如果一个分数的分子和分母的最大公约数是1,这个分数称为既约分数.例如,3/4,5/2,1/8,7/1都是既约分数.请问,有多少个既约分数,分子和分母都是1到2020之间的整数(包括1和202 ...

  8. 2020年蓝桥杯Java A组 B题 既约分数

    题目 [描述] 如果一个分数的分子和分母的最大公约数是1,这个分数称为既约分数.例如,3/4 , 5/2 , 1/8 , 7/1都是既约分数.请问,有多少个既约分数,分子和分母都是1 到2020 之间 ...

  9. 2020年第十一届蓝桥杯 - 省赛 - CC++大学A组 - B.既约分数

    2020年第十一届蓝桥杯-省赛-C&C++大学A组-B.既约分数 Ideas 这题就是简单的暴力枚举,把分子和分母都从1枚举到2020,然后判断分子和分母的的最大公约数是不是1就OK了. 计算 ...

最新文章

  1. Kylin安装,Kylin网页版教程学习
  2. 牛客题霸 [将升序数组转化为平衡二叉搜索树]C++题解/答案
  3. Java Socket实现客户端服务端之间的通信
  4. View requires API level 14 (current min is 8): GridLayout
  5. [topcoder]AvoidRoads
  6. POJ题目分类(转)
  7. 教孩子学编程python语言pdf_教孩子学编程 PYTHON语言版 PDF 下载
  8. 【读书笔记】曾国藩的正面与侧面(二)
  9. 黑客江湖之八大门派和东邪西毒南帝北丐中神通
  10. rasa_nlu踩坑经历
  11. Maven server structure problem
  12. AEJoy —— 详解 AE 如何将 png 序列帧导出为 SVGA 动画文件
  13. Qt在mac上的字体
  14. 安装打印机提示未能添加服务器,无法安装打印机解决方法
  15. python爬虫笔记——Scrapy框架(浅学)
  16. 第29题:link与@import的区别
  17. ESP8266AT固件获取时间和连接心知天气
  18. 面试中的65个技巧性回答---这简直就是全餐嘛
  19. 一篇好文章带你走出阴霾
  20. VSCode报错“gcc不是内部或外部命令......”(自用)

热门文章

  1. 【持续更新】【windows快捷键】一键锁屏
  2. atomikos JTA/XA全局事务
  3. 基于Win10和Mac双系统,Win10系统上的永久杜比音效安装
  4. python使用openpyxl库按 行/列 合并/拆分 Excel表格
  5. 锂电革命势在必行,电动两轮车锂电这块蛋糕怎么瓜分?安全是第一道“投名状”!
  6. Spring中涉及的设计模式总结
  7. 8051的特殊功能寄存器
  8. 弛豫压控振荡器的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  9. 自学python--第一步:基础知识1
  10. 组件分享之后端组件——基于Golang实现的高级消息队列协议 (AMQP) 的消息代理garagemq...