公约数和公倍数

描述

小明被一个问题给难住了,现在需要你帮帮忙。问题是:给出两个正整数,求出它们的最大公约数和最小公倍数。

输入
第一行输入一个整数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     int b;
 6     int temp;
 7     int T;
 8     int a_save;
 9     int b_save;
10
11     scanf("%d",&T);
12
13     while(T--){
14         scanf("%d%d",&a,&b);
15
16         if(a<b){
17             temp=a;
18             a=b;
19             b=temp;
20         }
21
22         a_save=a;
23         b_save=b;
24         while(a%b!=0){
25             temp=a%b;
26             a=b;
27             b=temp;
28         }
29
30         printf("%d %d\n",b,a_save*b_save/b);
31     }
32     return 0;
33 }
时间: 2024-10-12 17:44:36

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

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

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 最大公

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