公倍数与公约数

#include<stdio.h>
#include <iostream>
#include<math.h>

using namespace std;

//公约数
int getCommoDivisor(int x, int y)
{
    int k;
    if (x < y)
    {
        k = x;
        x = y;
        y = k;
    }
    if (x%y == 0)
        return abs(y);
    else
        return getCommoDivisor(y, x%y);
}

//公倍数
int getCommonMultiple(int x, int y)
{
    int z = getCommoDivisor(x, y);
    int t = (x*y) / z;
    return t;
}

int _tmain(int argc, _TCHAR* argv[])
{
    do
    {
        int x, y, z, t;
        cout << "请输入x=" << endl;
        cin >> x;
        cout << "请输入y=" << endl;
        cin >> y;
        z = getCommoDivisor(x, y);
        t = getCommonMultiple(x, y);
        cout << x << "与" << y << "的最小公倍数为:" << t << endl;
        cout << x << "与" << y << "的最大公约数为:" << z << endl;

        //getchar();

        system("pause");

        system("cls");

    } while (1);

    return 0;
}

原文地址:https://www.cnblogs.com/poissonnotes/p/8434869.html

时间: 2024-10-25 18:40:13

公倍数与公约数的相关文章

数学与生活

第1章 数的幼年期 1.1 从未开化到文明 1.2 数的黎明 1.3 一一对应 1.4 分割而不变 1.5 数的语言 1.6 数词的发展 1.7 手指计数器 1.8 金字塔 1.9 二十进制 1.10 十二进制 1.11 六十进制 1.12 定位与0的祖先 第2章 离散量和连续量 2.1 多少个和多少 2.2 用单位测量 2.3 连续量的表示方法 2.4 分数的意义 2.5 折叠和扩展 2.6 分数的比较 2.7 分数的加法和减法 2.8 乘法的扩大解释 2.9 乘减少,除增大 2.10 小数的

nyist 40 公约数和公倍数

公约数和公倍数 时间限制:1000 ms  |  内存限制:65535 KB 难度:1 描述 小明被一个问题给难住了,现在需要你帮帮忙.问题是:给出两个正整数,求出它们的最大公约数和最小公倍数. 输入 第一行输入一个整数n(0<n<=10000),表示有n组测试数据;随后的n行输入两个整数i,j(0<i,j<=32767). 输出 输出每组测试数据的最大公约数和最小公倍数 样例输入 3 6 6 12 11 33 22 样例输出 6 6 1 132 11 66 #include &l

求公约数和公倍数

欧几里得的辗转相除求最大公约数 加公倍数. #include<iostream> #include<cstdio> using namespace std; void yue(int a,int b) { int temp=b; while(temp>0) { temp=a%b; a=b; b=temp; } cout<<a<<" "; } void bei(int a,int b) { int temp; temp=a>b?

31、求最大公约数和最大公倍数

求最大公约数和最大公倍数 一.求三个数的最大公约数和最大公倍数 /* 时间:2017年6月30日20:14:33 功能:求三个数的最大公约数与最小公倍数 */ # include <stdio.h> main() { int x, y, z, a, b, min, max; printf("请输入三个整数以空格分隔:"); scanf("%d %d %d", &x,&y,&z); if(x<y) { min = x; max

【编程小题目5】求解最大公约数和最大公倍数

题目:输入两个正整数m和n,求其最大公约数和最小公倍数. 程序分析:利用辗除法求最大公约数:最大公倍数等于m * n / Gcd(m,n). #include <iostream> using namespace std; int main() { int n, m; int k,r = 1; cout << "Plese input the number n and m:"; cin >> n >> m; k = n * m; whil

C语言计算两个正整数的最大公约数与最大公倍数

先给出源码,下面解释. #include <stdio.h> void main() { int a,b,c,d;  //定义四个变量 scanf("%d,%d",&a,&b); d=a*b;  //求出两个正整数的乘积 while (b!=0) { c=a%b;//重点是这里 ,很多人看不懂,再往下面看 a=b; b=c; } printf("最大公约数为%d,最大公倍数为%d\n",a,(d/a)); } 最小公倍数的求法:a*b/最

二个整数的最大公约数和公倍数

import java.util.Scanner;public class demo03 { public static void main(String[] args) { Scanner in = new Scanner(System.in); int a = in.nextInt(); //接收两个整数 int b = in.nextInt(); int i = 0; //计算出公倍数 while(true){ i++; if(i%a==0 && i%b==0 && 

NYOJ_40 公约数和公倍数

题目地址 分析: 辗转相除法求最大公约数,最小公倍数也随即得到. 辗转相除法: 假设求a b的最大公约数(a>b),则 判断 k=a/b 和r=a%b. 若r为0,则最大公约数为b. 否则最大公约数为 b r 的最大公约数. 不证明,有兴趣可以百度. 同时,最小公倍数为 两数之积除以最大公约数. 代码: #include<iostream> using namespace std; //辗转相除法 int gcd(int a,int b)//最大公约数 { if(a<b) { in

公约数和公倍数

描述 小明被一个问题给难住了,现在需要你帮帮忙.问题是:给出两个正整数,求出它们的最大公约数和最小公倍数. 输入 第一行输入一个整数n(0<n<=10000),表示有n组测试数据; 随后的n行输入两个整数i,j(0<i,j<=32767). 输出 输出每组测试数据的最大公约数和最小公倍数 样例输入 3 6 6 12 11 33 22 样例输出 6 6 1 132 11 66 1 #include <stdio.h> 2 3 int main(){ 4 int a; 5