公约数与公倍数

/*
描述
小明被一个问题给难住了,现在需要你帮帮忙。问题是:给出两个正整数,求出它们的最大公约数和最小公倍数。
输入
第一行输入一个整数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
最大公约数:1
最小公倍数:132
33 22
最大公约数:11
最小公倍数:66
*/

#include <stdio.h>

//最大公约数
int gcd(int a,int b)
{
    if (a<b) return gcd(b,a);
    else if (b==0) return a;
    else return gcd(b,a%b);

}
//最小公倍数
int lcm(int a,int b)
{
    return a*b/gcd(a,b);
}

int main(int argc, const char * argv[]) {
    // insert code here...
    printf("Hello, World!\n");

    int a,b,n;
    scanf("%d",&n);
    while (n>0) {
        scanf("%d%d",&a,&b);
        printf("最大公约数:%d\n",gcd(a,b));
        printf("最小公倍数:%d\n",lcm(a,b));
        n--;
    }

    return 0;
}
时间: 2024-08-17 11:24:19

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

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?

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

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

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

C语言之函数调用07—求4个数的最大公约数和最小公倍数

//函数调用 /* ========================================================== 题目:求4个数的最大公约数和最小公倍数. ========================================================== */ #include<stdio.h> long gys(long m,long n) { int t,r; if(m<n) {t=m;m=n;n=t;} while((r=m%n)!=0)

【南阳OJ分类之语言入门】80题题目+AC代码汇总

声明: 题目部分皆为南阳OJ题目. 代码部分包含AC代码(可能不止一个)和最优代码,大部分都是本人写的,并且大部分为c代码和少部分c++代码and极少java代码,但基本都是c语言知识点,没有太多差别,可能代码有的写的比较丑,毕竟知识有限. 语言入门部分题基本都较为简单,是学习编程入门的很好练习,也是ACM的第一步,入门的最佳方法,望认真对待. 本文由csdn-jtahstu原创,转载请注明出处,欢迎志同道合的朋友一起交流学习.本人QQ:1373758426和csdn博客地址. now begi