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)欧几里得算法:辗转相除法
 6 有两整数a和b:
 7 ① a%b得余数c
 8 ② 若c=0,则b即为两数的最大公约数
 9 ③ 若c≠0,则a=b,b=c,再回去执行①*/
10
11 #include<stdio.h>
12 int main( ) {
13     int n, i, j, k, t;
14         scanf("%d", &n);
15     while(n--) {
16         scanf("%d%d", &i, &j);
17         k = i * j;
18         while(j != 0) {
19             t = i % j;
20             i = j;
21             j = t;
22         }
23         printf("%d %d\n", i, k / i);
24     }
25     return 0;
26 }

时间: 2024-10-20 01:34:35

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

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

公约数与公倍数

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