C++求最大公约数和最小公倍数

C++求最大公约数和最小公倍数方法一:辗转相除法   用"较大数"除以"较小数",再用"较小数"除以"第一余数",再用“第一余数”除以 “第二余数",   如此反复,直到最后余数是0为止。如果是求两个数的最大公约数,那么最后的除数就是这两个数的最大公约数。#include<stdio.h>#include<stdlib.h>#include&a

大家好,又见面了,我是你们的朋友全栈君。

方法一:辗转相除法

     用 “较大数” 除以 “较小数”,再用 “较小数” 除以 “第一余数”,再用“第一余数”除以  “第二余数”,

     如此反复,直到最后余数是0为止。如果是求两个数的最大公约数,那么最后的除数就是这两个数的最大公约数。

C++求最大公约数和最小公倍数

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <algorithm>
#include <iostream>
using namespace std;
int main()
{
	int a,b;
	//while(scanf("%d,%d",&a,&b)!=EOF)//这样写有问题,a*b 所得值不对,好像是地址值
	while((cin>>a>>b)!=NULL)
	{
		if(a<b)//大数放在前面
		{
			int temp=a;
			a=b;
			b=temp;
		}
		int gcd=0; //Greatest Common Divisor 最大公约数;  
		int lcm=a*b; // Lowest Common Multiple 最小公倍数; 
		
		int t=0;
		while(b!=0)
		{
			t=a%b;
			a=b;
			b=t;
		}
		gcd=a;
		lcm=lcm/gcd;
		//cout<<gcd<<" "<<lcm<<endl;
		printf("%d %d\n",gcd,lcm);
	}
	return 0;
}

方法二:更相减损法

       “较大数” 减 “较小数”,循环,当两数相同时,相同的数即为“最大公约数”

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <algorithm>
#include <iostream>
using namespace std;

int main()
{
    int a,b;
    while((cin>>a>>b)!=NULL)
    {
        int gcd=0; //Greatest Common Divisor 最大公约数; 
        int lcm=a*b; // Lowest Common Multiple 最小公倍数; 
        while(a!=b){
            if(a>b){a-=b;}else{b-=a;}
        }    
        gcd=a;
        lcm=lcm/gcd;
        printf("%d %d\n",gcd,lcm);
    }
    return 0;
} 

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/145574.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • crontab怎么使用_crontab配置

    crontab怎么使用_crontab配置    使用crontab你可以在指定的时间执行一个shell脚本或者一系列Linux命令。例如系统管理员安排一个备份任务使其每天都运行安装:apt-getinstallcron  (服务器环境下默认都会安装)使用:crontab-e  进入编辑页面(第一次进入会让你选择编辑器)       crontab-l  查看当前的定时任务以上是crontab的使用规则,以及定时方法的…

    2022年8月24日
  • 2000款商务通用PPT模板免费下载[通俗易懂]

    2000款商务通用PPT模板免费下载[通俗易懂]0001-大气黑金年终工作总结PPT模板.zip:https://baippt.ctfile.com/fs/5288276-3454633710002-简约大气工作总结PPT模板.zip:https://baippt.ctfile.com/fs/5288276-3454633380003-商务风职业规划PPT模板.zip:https://baippt.ctfile.com/fs/5288…

    2022年7月24日
  • Java–反射

    Java–反射反射定义用途(了解)反射基本信息反射相关的类Class类(反射机制的起源)反射的使用反射优点和缺点定义Java的反射(reflection)机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性,既然能拿到那么,我们就可以修改部分类型信息;这种动态获取信息以及动态调用对象方法的功能称为java语言的反射(reflection)机制。用途(了解)1、在日常的第三方应用开发过程中,经常会遇到某个类的某个成员变量、方法或是属性是私有的或是只对

    2022年7月7日
  • PLC编程从入门到精通视频教程【副业学习会】

    PLC编程从入门到精通视频教程【副业学习会】PLC编程视频教程共73课,从入门到精通。从基础讲起,一步步提高PLC编程技巧。本套教程分为:电工基础教程、PLC入门教程、PLC高级教程、PLC经验与技巧、触摸屏(人机)编程教学。此视频通俗易懂,而且很实用。![在这里插入图片描述](https://img-blog.csdnimg.cn/20210715203622364.png)课程目录:第1章电工基础教程01电工基础的简介.mp402工厂用电.mp403看懂基本电路.mp404自锁、正反转电路.m…

    2022年9月4日
  • SNMP Trap调试记录[通俗易懂]

    SNMP Trap调试记录[通俗易懂]目录一、Trap与Inform二、Trap1、Agent端工作流程2、Manager端工作流程3、流程图三、调试四、SNMP中预定义的trap一、Trap与InformSNMPInformRequests功能允许路由器向SNMP管理器发送通知请求。路由器可以在发生特定事件时向SNMP管理器发送通知。例如,代理路由器可能在自身遇到错误情况时向管理器发…

    2022年8月20日
  • C#QuotedStr方法实现,引号的处理

    C#QuotedStr方法实现,引号的处理在Delphi中处理引号有QuotedStr函数,但C#中却没有相应的处理!所以转换了Delphi的代码为C#中来处理。。以下为代码!protectedstringQuotedStr(stringS){stringvResult;vResult=S;for(inti

    2022年10月17日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号