求公约数和公倍数

欧几里得的辗转相除求最大公约数

加公倍数。

#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?a:b;
    for(;temp<=a*b;temp++)
    {
        if(temp%a==0&&temp%b==0)
        {
            cout<<temp<<endl;
            break;
        }
    }

}
int main()
{
    int a,b;
    while(scanf("%d%d",&a,&b)!=EOF)
    {
        yue(a,b);
        bei(a,b);
    }

    return 0;
}
时间: 2024-10-09 23:22:00

求公约数和公倍数的相关文章

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

公约数和公倍数 描述 小明被一个问题给难住了,现在需要你帮帮忙。问题是:给出两个正整数,求出它们的最大公约数和最小公倍数。 输入第一行输入一个整数n(0&lt;n&lt;=10000),表示有n组测试数据; 随后的n行输入两个整数i,j(0&lt;i,j&lt;=32767)。输出输出每组测试数据的最大公约数和最小公倍数

#include <stdio.h>int main() { int n,i,j,a,b,t,k; scanf("%d",&n); for(k=0;k<n;k++) { scanf("%d %d",&i,&j); a=i,b=j; if(b%a==0) printf("%d %d\n",a,i*j/a); else{ for(t=1;t!=0;) { t=a%b; a=b; b=t; } printf(&

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

求区间最大公倍数

问题:求区间[a, b]内所有整数的最大公倍数 方法:利用公式:lcm(a, b) = |a*b|/gcd(a, b) 代码如下: 1 function Scm(a, b) { 2 function gcd(a, b) { 3 return b === 0 ? a : gcd(b, a%b); 4 } 5 function lcm(a, b) { 6 return a > b ? (a * b / gcd(a, b)) : (a * b / gcd(b,a)); 7 } 8 9 var scm

40.公约数和公倍数

描述 小明被一个问题给难住了,现在需要你帮帮忙.问题是:给出两个正整数,求出它们的最大公约数和最小公倍数. 输入 第一行输入一个整数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 /* 2 求最小公倍数算法: 3 最小公倍数=两整数的乘积÷最大公约数 4 求最大公约数算法: 5 (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 */ /* Hello, World! 3 6 6 最大公约数:6 最小公倍数:6 12 11 最大公

1028: C语言程序设计教程(第三版)课后习题8.1用函数求公约数

题目描述 写两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果两个整数由键盘输入. 输入 两个数 输出 最大公约数 最小公倍数 样例输入 6 15 样例输出 3 30 提示 来源 int main() { int a,m,n,cun,bei; scanf("%d %d",&m,&n); a=m*n; if(m<n)cun=m,m=n,n=cun; while(n!=0) {     cun=m%n;     m=n;     n=

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

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 &&