基本要求:1.程序风格良好(使用自定义注释模板),两种以上算法解决最大公约数问题,提供友好的输入输出。
提高要求:1.三种以上算法解决两个正整数最大公约数问题。
2.求3个正整数的最大公约数和最小公倍数。
方法1穷举法
穷举法(也叫枚举法)穷举法求两个正整数的最大公约数的解题步骤:从两个数中较小数开始由大到小列举,直到找到公约数立即中断列举,得到的公约数便是最大公约数 。
对两个正整数a,b如果能在区间[a,0]或[b,0]内能找到一个整数temp能同时被a和b所整除,则temp即为最大公约数。

#include "stdio.h"
int gcd (int a,int b) /*自定义函数求两数的最大公约数*/{
int  temp;          /*定义义整型变量*/
temp=(a>b)?b:a;    /*条件运算表达式求出两个数中的最小值*/
while(temp>0)
{if (a%temp==0&&b%temp==0) /*只要找到一个数能同时被a,b所整除,则中止循环*/
break;
temp--;      /*如不满足if条件则变量自减,直到能被a,b所整除*/
}
return (temp); /*返回满足条件的数到主调函数处*/
}
void main() {int m,n,t; printf("请输入两个数字:");  scanf("%d%d",&m,&n); t=gcd(m,n); printf("最大公约数为: %d\n",t);
}

数据流程图

程序调试及运行界面


方法2辗转相除法

#include<stdio.h>
void main()   /*  辗转相除法求最大公约数 */
{ int m, n, a, b, t, c;printf("请输入两个有效的正整数:\n");scanf("%d%d", &a, &b);m=a;   n=b;while(b!=0)  /* 余数不为0,继续相除,直到余数为0 */ { c=a%b; a=b;  b=c;}printf("最大公约数为:%d\n", a);printf("最小公倍数为:%d\n", m*n/a);
}

程序流程图

程序调试结果及运行界面


(3)更相减损法

#include<iostream>
using namespace std;
int main()
{
int a,b,g,l;
int gcd(int a,int b);//gcd为英语最大公约数的首字母缩写
int lcm(int a,int b);//lcm即为最小公倍数的缩写
cout<<"请输入两个有效的数字:"<<endl;
cin>>a>>b;
g=gcd(a,b);
l=lcm(a,b);
cout<<"所求的最大公约数为"<<g<<endl;
cout<<"所求的最小公倍数为"<<l<<endl;
return 0;
}
int gcd(int a,int b)//用更相减损法求最大公约数
{
int c;
while(a!=b) //a, b不相等,大数减小数,直到被减数与差相等为止
{
if(a>b)
{
c=a-b;
a=b;
b=c;
}
else
{
c=b-a;
b=a;
a=c;
}
}
return c;
}
int lcm(int a,int b)//最小公倍数等于两数的积除以两数的最大公约数
{
int g,l;
g=gcd(a,b);
l=a*b/g;
return l;
}

程序流程图

程序调试及运行结果


二作业总结
通过这次上机作业,我看到自己的很多不足之处,首先基础知识不扎实,编程时会翻看课本,对以前所学的知识理解得不够深刻,掌握得不够牢固,这是导致自己不能完全完成任务的主要原因,在这过程中,遇到了各种各样的问题,有的解决了,有的尝试了很多次依然解决不了,这让我有些苦恼,信心也受到了打击;其次是逻辑思维不够严密,缺乏创新能力,总是想着用最简单最低级的语句解决所有问题,不能想到很多其他的更好更有效率的解决办法,过程繁琐,拖泥带水,看起来不简洁明了;最后就是工作效率不高,一下午可能只能解决一两个小问题,耗费大量的精力和时间却只能换来一段中等水平的代码。
我明白自己还有很多很多需要学习的地方。通过这次上机作业,使我更加地体会到多看专业书的重要性,只有掌握了一定量的专业知识才能得心应手地解决诸多问题,另外,在做任何事都要有耐心,不要一遇到困难就退缩,一碰到难解决的问题就跳过,在学习和工作中要时刻谨记“踏实”二字,踏踏实实认认真真学习基础,它好比通向成功的铺路石,不可或缺。
此次作业设计也让我明白了思路即出路,有什么不懂不明白的地方要及时请教或上网查询,只要认真钻研,动脑思考,动手实践,就没有弄不懂的知识。

求两个正整数的最大公约数和最小公倍数相关推荐

  1. 三种算法求两个正整数的最大公约数和最小公倍数;求三个数的最大公约数和最小公倍数

    第二次作业 题目:求两个正整数的最大公约数和最小公倍数. 基本要求:1.程序风格良好(使用自定义注释模板),两种以上算法解决最大公约数问题,提供友好的输入输出. 提高要求:1.三种以上算法解决两个正整 ...

  2. 【算法】求两个正整数的最大公约数和最小公倍数

    题目 输入两个正整数m和n,求其最大公约数和最小公倍数. public class Prog6{public static void main(String[] args){int m,n;try{m ...

  3. Python 求两个正整数的最大公约数和最小公倍数

    最大公约数 a . b 的顺序并不影响最终结果,如果 a .b 是顺序的话,会多一次递归(相当于第一次递归会用来调换大小顺序). # 最大公约数 greatest common divisor # 辗 ...

  4. 求三个正整数的最大公约数和最小公倍数

    题目:求两个正整数的最大公约数和最小公倍数. 基本要求:1.程序风格良好(使用自定义注释模板),两种以上算法解决最大公约数问题,提供友好的输入输出. 提高要求:1.三种以上算法解决两个正整数最大公约数 ...

  5. c语言求出两个最大素数,求两个正整数的最大公约数      思路:这是一个很基本的问题,最常见的就是两种方法,辗转相除法和辗转相减法。通式分别为 f(x, y) = f(y, x%y...

    求两个正整数的最大公约数 思路:这是一个很基本的问题,最常见的就是两种方法,辗转相除法和辗转相减法.通式分别为 f(x, y) = f(y, x%y), f(x, y) = f(y, x - y) ( ...

  6. c语言编程从键盘上输入两个整数m和n,C语言习题 求键盘输入的两个正整数的最大公约数和最小公倍数...

    C语言习题 求键盘输入的两个正整数的最大公约数和最小公倍数以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! C语言习题 求 ...

  7. php怎么求最小公倍数,C++_详解C语言求两个数的最大公约数及最小公倍数的方法,求两个正整数的最大公约数nbs - phpStudy...

    详解C语言求两个数的最大公约数及最小公倍数的方法 求两个正整数的最大公约数 思路:这是一个很基本的问题,最常见的就是两种方法,辗转相除法和辗转相减法.通式分别为 f(x, y) = f(y, x%y) ...

  8. C语言丨求两个正整数的最大公约数

    两个正整数的最大公约数(Greatest Common Divisor, GCD)是能够整除这两个整数的最大整数.两个正整数的最大公约数的求法有多种解答,本文就三种方法做详细介绍:穷举法.欧几里得算法 ...

  9. 用三种方法求三个正整数的最大公约数和最小公倍数(python3)。

    题目:求三个正整数的最大公约数和最小公倍数. 基本要求:1.程序风格良好(使用自定义注释模板),两种以上算法解决最大公约数问题,提供友好的输入输出. 提高要求:1.三种以上算法解决两个正整数最大公约数 ...

最新文章

  1. win下的输入流结束符
  2. 课堂练习课下作业----用户场景分析
  3. 如何通过反射将字符串转换为类
  4. [转]2016年Web前端面试题目汇总
  5. mongodb java 单例_Java单例MongoDB工具类
  6. Cisco 交换机配置文件存放位置及管理要点
  7. Vue之脚手架第一个项目
  8. ios 注册功能研究学习
  9. Google--PageRank(网页级别)技术解密[转]
  10. 机器学习实战——3.4 示例:使用决策树预测隐形眼镜类型
  11. ST7735 TFT显示屏 显示问题
  12. echoServer回显服务器
  13. oracle替换手机号中间的4位为*号(姓名,手机号,邮箱脱敏)
  14. 【100%通过率】华为OD机试真题 Python 实现【完美走位】【2022.11 Q4新题】
  15. 【python实现视频解帧并保存到文件夹】
  16. 解决 wmware windows虚拟机无法使用U盘,提示“跟这台电脑连接的一个usb设备运行不正常 windows无法识别它”的问题!
  17. 重定向解决国外服务器与国内域名备案的问题
  18. html所属省份选择框_JS省份联级下拉框
  19. jquery easyui中文培训文档
  20. 给2016域用户限制登录时间并创建和删除一个OU

热门文章

  1. 磨刀不误砍柴 - 配置适合工作学习的桌面环境
  2. python国际象棋ai程序_Python开发AI应用-国际象棋应用
  3. git --allow-unrelated-histories
  4. intel dpdk api rte_eal_hpet_init() 函数介绍
  5. 不会聊天?不会撩妹?宅男如何走出自闭的循环圈
  6. 三菱FX3U/FX1N底层源码,PLSR源码, 总体功能和指令可能支持在RUN中下载程序,支持注释的写入和读取,支持脉冲输出与定位指令(包括PLSY /PWM/PLSR/PLSV/DRVI /DRV
  7. 拼点游戏(类似于田忌赛马)
  8. scratch字母点头问好 电子学会图形化编程scratch等级考试一级真题和答案2020-9
  9. 苏格兰研发成功新型治疗结核病药物
  10. Jason数据的访问