判断一个分数是否为既约分数的算法(既约分数是指 分数的分子和分母的最大公约数是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. Nginx+Tomcat 负载均衡集群方案
  2. 每日记载内容总结44
  3. ArcGIS Server开发示例诠释
  4. php关闭warning
  5. 23种设计模式C++源码与UML实现--策略模式
  6. php调用root权限,PHP执行root权限程序
  7. Zookeeper的概述
  8. Linux的SOCKET编程 简单演示
  9. 文件CRC和MD5校验
  10. 内存条和SSD都要涨价了!日韩贸易战将引起NAND与DRAM双涨效应
  11. 【数据库系统设计】关系数据库标准语言SQL(1)
  12. 南开大学开源新图像分割算法,刷新精度记录 | 资源
  13. Linux性能及调优指南(翻译)
  14. 用JavaScript校验日期的合法性
  15. CountDownLatch 多线程使用示例
  16. mac 系统搭建web服务器,MAC OS 如何搭建本地webserver
  17. 拆机清灰重装系统数据恢复——心得汇总
  18. win10本地策略组脚本
  19. Mixly(米思齐)for Mac 2.0 安装遇到的一些问题
  20. 清除各个浏览器保存的账号密码信息

热门文章

  1. 微信小程序的发展历史
  2. html网页制作校园失物招领,Jsp+SpringMvc+Mysql实现的校园失物招领管理平台毕设指导思路模板...
  3. 文件格式大全formats.myrice.com
  4. 长江钢琴质量具有哪些优势
  5. 2020全球各领域独角兽科技公司500强名单,跳槽必备!
  6. sql语句学习与使用
  7. 基于solidity的抢红包代码
  8. 加速器吞吐率、能效比的计算
  9. ElasticSearch 总结
  10. python语言的单行注释以井号开头_初识Python