importjava.util.Scanner;
publicclassTest6{
//欧几里德辗转相除法
publicstaticintgcd(inta,intb){
intr;
while(b!=0){
r=a%b;
a=b;
b=r;
}
returna;
}
//最小公倍数的另一种解法
publicstaticintgcdtwo(inta,intb){
while(a!=b){
if(a>b){
a=a-b;
}else{
b=b-a;
}
}
re..
分类:
编程语言 时间:
2014-08-30 19:14:10
阅读次数:
231
题目链接:uva 10951 - Polynomial GCD题目大意:给出n和两个多项式,求两个多项式在全部操作均模n的情况下最大公约数是多少。解题思路:欧几里得算法,就是为多项式这个数据类型重载取模运算符,须要注意的是在多项式除多项的过程中,为了保证各项系数为整数,须要将整个多项式的系数总体扩大...
分类:
其他好文 时间:
2014-08-29 12:41:38
阅读次数:
252
欧几里得
时间限制:1000 ms | 内存限制:65535 KB
难度:0
描述
已知gcd(a,b)表示a,b的最大公约数。
现在给你一个整数n,你的任务是在区间[1,n)里面找到一个最大的x,使得gcd(x,n)等于1。
输入输入文件的第一行是一个正整数T,表示有T组测试数据
接下来有T行,每行有一个正整数n (1
输出每组测试输出要求...
分类:
其他好文 时间:
2014-08-27 23:31:28
阅读次数:
306
知识点:辗转相除法求最大公约数内容: 求两个自然数的最大公约数输入说明:一行两个整数输出说明:一行最大公约数输入样例:2 4输出样例 :2#include int main(){ int a,b,t; scanf("%d %d",&a,&b); do { t=a%b; a=b; b=t; } ...
分类:
其他好文 时间:
2014-08-25 07:37:13
阅读次数:
189
这个算法是用来求满足下列条件的整数x和y: d = gcd(a,b) = ax+by (d为a,b的最大公约数)算法导论上给出的伪代码: EXTENDED_EUCLID(a,b) 1 if b==0 2 return (a,1,...
分类:
其他好文 时间:
2014-08-24 23:40:53
阅读次数:
339
欧几里得算法(又称辗转相除法)定理:gcd(a,b) = gcd(a,a mod b)证明:对于任何正整数a,b。如果a>b,都有a=k*b+r 即r=a-k*b => r=a mod b. 假设d为a,b的公约数,则a=a1*d,b=b1*d。 而r=a1*d-k*b1*d=(a1-k*b1)*d...
分类:
其他好文 时间:
2014-08-22 00:09:15
阅读次数:
287
题目:Given an integer N, and how many pairs (A;B) are there such that: gcd(A;B) = A xor B where 1=2)是不同位数的。和同学讨论后得出如下证明:设最大公约数为 j, 假设这两个数是b 和 b+k*j,(k>....
分类:
其他好文 时间:
2014-08-19 23:50:55
阅读次数:
233
素数筛:
//数除了{2,3,5}为素数,其他的数可以写成6N,6N+1,6N+2,6N+3,6N+4,6N+5 N>=1 可以表示全部的数
//6N,6N+2,6N+4都为偶数,不是素数,6N+3 == 3(2N+1) 不是素数,那么就只筛6N+1和6N+5就可以了
int prime[1000000]={2,3,5};
void is_prime()
{
int i,j;
...
分类:
其他好文 时间:
2014-08-19 20:58:25
阅读次数:
237
//3.输入两个数,求最大公约数和最小公倍数inta=0,b=0;printf("请输入两个数:");scanf("%d%d",&a,&b);intc=0,d=0;c=a>b?b:a;//求出两个数中较小的d=a>b?a:b;//求出两个数中较大的for(inti=c;i>0;i--){//从小的开始循环if((c%i==0)&&(d%i==0)){//除尽..
分类:
其他好文 时间:
2014-08-15 10:52:29
阅读次数:
175