/*欧几里德算法:辗转求余 原理: gcd(a,b)=gcd(b,a mod b) 当b为0时,两数的最大公约数即为agetchar()会接受前一个scanf的回车符*/#includevoid main(){ int temp; int a,b; scanf("%d",&a); scanf("%d...
分类:
编程语言 时间:
2015-04-25 19:37:28
阅读次数:
169
// 求两个数m和n的最大公约数(辗转相除法)
#include
int yue( int x, int y )
{
int temp;
int tem;
// 保证分母不为0
if( y == 0 )
{
x = temp;
temp = y;
y = x;
}
// 辗转相除法
while( tem )
{
tem = x % y;
x = y;
...
分类:
编程语言 时间:
2015-04-23 13:21:51
阅读次数:
187
裴蜀定理
(1)a,b互质的充要条件是:存在整数x,y使ax+by=1
(2)设a1,a2,a3......an为n个整数,d是它们的最大公约数,那么存在整数x1......xn使得x1*a1+x2*a2+...xn*an=d
(3)如果a1...an互质(不一定是两两互质),那么存在整数x1......xn使得x1*a1+x2*a2+...xn*an=1
(4)对任何整数a,b和它们的最...
分类:
其他好文 时间:
2015-04-22 22:23:46
阅读次数:
316
解法一:
辗转相除法,使用原理为f(x,y)表示x,y的最大公约数,取k=x/y,b=x%y,则x=ky+b,如果一个数能够同时整除x和y,则必能同时整除b和y,而能够同时整除b和y的数也必能同时整除x和y,即x和y的公约数与b和y的公约数相同的,其最大公约数也是相同的,则有f(x,y)=f(y,x%y)(y>0).
具体代码如下:
int gcd(int x,int y)
{...
分类:
其他好文 时间:
2015-04-21 09:54:49
阅读次数:
126
1 #include 2 using namespace std; 3 4 int gcd(int m , int n) 5 { 6 int r; 7 while(n!=0) 8 { 9 r = m%n;10 m = n;11 ...
分类:
编程语言 时间:
2015-04-21 09:26:19
阅读次数:
143
http://codevs.cn/problem/1012/题目描述Description输入二个正整数x0,y0(2 #include int x,y; bool zhi(int x) { for (int i=2;i<=sqrt(x);++i) if (x...
分类:
其他好文 时间:
2015-04-21 00:10:04
阅读次数:
386
51nod1040 最大公约数之和 (欧拉函数 )...
分类:
其他好文 时间:
2015-04-20 18:32:23
阅读次数:
110
题目大意:求最大的两个数的最大公约数。思路:数据范围较小,只有10^5,可以考虑哈希。解法1: 1 #include 2 #include 3 #include 4 using namespace std; 5 6 const int N = 100001; 7 int hash_table...
分类:
其他好文 时间:
2015-04-19 00:53:37
阅读次数:
174
#include #include #include #include #include using namespace std;int main(){ int t,i,c,j,n,x,max,k; int a[100005]; scanf("%d",&t); for(j=1...
分类:
编程语言 时间:
2015-04-18 21:55:29
阅读次数:
119
1.非递归实现(两个数相乘再除以最大公约数)int max_common_doulbe(int a, int b){ int nMax=a>b?a:b; int nMin=ab?a:b; int nMin=a<b?a:b; int nMaxGY=nMax; //最大公约数 if(...
分类:
其他好文 时间:
2015-04-18 17:31:37
阅读次数:
127