欧几里德算法求最大公约数
来源:互联网 发布:淘宝信誉查询 编辑:程序博客网 时间:2024/05/18 12:03
1.例题
公约数和公倍数
时间限制:1000 ms | 内存限制:65535 KB
难度:1
- 描述
- 小明被一个问题给难住了,现在需要你帮帮忙。问题是:给出两个正整数,求出它们的最大公约数和最小公倍数。
- 输入
- 第一行输入一个整数n(0<n<=10000),表示有n组测试数据;
随后的n行输入两个整数i,j(0<i,j<=32767)。 - 输出
- 输出每组测试数据的最大公约数和最小公倍数
- 样例输入
36 612 1133 22
- 样例输出
6 61 13211 66
2.代码
#include <iostream>#include <cstdio>#include <cmath>using namespace std;int gys(int a, int b){ if(b > a) { int temp; temp = a; a = b; b = temp; } while(a % b != 0) { int temp; a = a % b; temp = a; a = b; b = temp; } return b;}int main(){ int n,a,b,c; cin>>n; while(n--) { cin>>a>>b; c = gys(a,b); cout<<c<<" "; cout<<a * b / c<<endl; } return 0;}
3.欧几里德算法求最大公约数的递归和非递归实现
#include <iostream>#include <cstdio>#include <stack>using namespace std;//递归实现int gcd1(int m,int n){ if (m < n) { int tmp = m; m = n; n = tmp; } if (n == 0) return m; else return gcd1(n,m % n);}//非递归实现int gcd2(int m,int n){ if (m < n) { int tmp = m; m = n; n = tmp; } if (n == 0) return m; while (n > 0) { int tmp = m % n; m = n; n = tmp; } return m;}int main(){ cout<<gcd1(100,3)<<endl; cout<<gcd2(100,3)<<endl; return 0;}
4.小应用
小珂的苦恼
时间限制:1000 ms | 内存限制:1000 KB
难度:2
- 描述
- 小珂是一名初中生,她现在很苦恼,因为老师布置了一个让她苦恼的作业,你能不能帮助她呢?题目信息如下。 已知二元一次方程 a*x+b*y=n, 判断这个二元一次方程有没有整数解,x,y为未知数,其中a,b,n都为整数且不等于零,同时满足0<a,b,n<2^16-1。
- 输入
- 第一行有一个整数0<n<=1000000表示有 n组测试数据,接下来的每一行有三个整数分别是a,b,n
- 输出
- 存在整数x和y使得方程有解,输出“Yes”,否则输出“No”
- 样例输入
22 4 23 9 7
- 样例输出
YesNo
#include <cstdio>#include<iostream>using namespace std;int main(){ int m,a,b,n; scanf("%d",&m); while(m--) { scanf("%d%d%d",&a,&b,&n); int temp; if(a < b) { temp = a; a = b; b = temp; } while(a % b != 0) { temp = a % b; a = b; b = temp; } if(n % b == 0) printf("Yes\n"); else printf("No\n"); } return 0;}
0 0
- 欧几里德算法求最大公约数
- 欧几里德算法求最大公约数
- 欧几里德算法求最大公约数
- 欧几里德算法 求最大公约数
- 欧几里德算法--求最大公约数
- 欧几里德算法求最大公约数
- 欧几里德算法求最大公约数
- 欧几里德算法求最大公约数
- 欧几里德算法求最大公约数
- 欧几里德算法求最大公约数
- 欧几里德算法求最大公约数
- 欧几里德算法求最大公约数
- 欧几里德算法-求最大公约数
- 欧几里德算法求最大公约数
- 欧几里德算法 -- 求最大公约数
- Euclide(欧几里德)算法求最大公约数
- 欧几里德算法求最大公约数--汇编
- 求最大公约数的欧几里德算法
- HTTP详解(1)-工作原理
- CSS Hack技术详解,支持IE 6-11、Chrome、FireFox、Safari、Opera
- HTTP协议header头域
- 安卓预置APK
- PHP实现在指定数组中取指定数量不重复的子集合
- 欧几里德算法求最大公约数
- OpenCV,三大边缘检测Canny,Sobel,Laplacian,及MFC实现
- 福源灏:300粉丝,微盟旺铺单日成交额39万
- 跨域文件clientaccesspolicy.xml
- boost的shared_ptr循环引用
- 【BZOJ 3218】 a + b Problem
- (转载)Android数据库高手秘籍(二)——创建表和LitePal的基本用法
- 8个炫酷的HTML5动画、应用和游戏
- SDUTOJ 2074 区间覆盖问题 贪心