欧几里得算法,辗转相除法,能很快求得最大公约数f(20,15)=f(15,5)=f(5,0)=5 1 #include 2 #include 3 //最大公约数 4 int gcd(int x,int y) 5 { 6 if(x<y) 7 return gcd(y,x);...
分类:
其他好文 时间:
2014-09-19 19:10:25
阅读次数:
161
分解质因数求最大公约数求最小公倍数牛顿迭代求平方根分解质因数import java.util.ArrayList;import java.util.List;public class Solution { // 返回质因数分解 List getPrimeFactors(int n) { ...
分类:
其他好文 时间:
2014-09-17 18:19:42
阅读次数:
241
求两个数a和b的最大公约数,可以想到的是从[1,min(a,b)]枚举每个正整数:#includeusing namespace std;int gcd(int a,int b){ int ans=1; for(int i=2;i>a>>b; cout=b)证明:设gcd(a,b)...
分类:
其他好文 时间:
2014-09-16 10:41:00
阅读次数:
188
最大公约数,根据《编程之美》递归版写的非递归版:1. 对于y和x来说,如果y=k*y1, x = k * x1。那么有gcd(y,x)=k*gcd(y1, x1);2. 如果x=p*x1, p是素数(质数),并且y%p != 0,那么gcd(x, y) = gcd(p * x1, y) = gcd(...
分类:
其他好文 时间:
2014-09-15 12:54:18
阅读次数:
129
题目:输入两个正整数m和n,求其最大公约数和最小公倍数。def foo(a,b): if a<b: (a,b)=(b,a) aa=a; bb=b; while b!=0: tmp=a%b; a=b; b=tmp; ...
分类:
编程语言 时间:
2014-09-13 09:21:14
阅读次数:
198
问题:求解两个正整数的最大公约数 今天第一节形式化方法课,举了一个简单的例子——辗转相减法求解两个正整数的最大公约数,来讲解形式化方法的基本内容,让我们有感性的认识。其基本思路如下: 1.任意给定两个正整数a和b; 2.若a和b不相等,则执行第3步; 3.选择a、b中较大者,...
分类:
其他好文 时间:
2014-09-10 15:36:10
阅读次数:
256
可参照辗转相除 1 #include 2 3 int main(void) 4 { 5 int x=260; 6 int y=104; 7 8 int temp; //临时变量 9 10 int index=0;11 while((x%2==0)&&(...
分类:
其他好文 时间:
2014-09-06 18:36:03
阅读次数:
145
1 #include 2 3 int main(void) 4 { 5 int x=252; 6 int y=105; 7 8 int temp; //临时保存变量 9 10 while(y!=0) //当y也就是余数为0的时候,x就是约数11 ...
分类:
其他好文 时间:
2014-09-06 18:30:53
阅读次数:
200
题目链接
题意:给你两个数G和L,输出两个正整数,最大公约数为G,最小公倍数为L,输出a最小的情况,如果不存在输出-1。
思路:当a最小时,a = G,所以只要L % G == 0,就表示存在。
代码:
#include
#include
#include
#include
using namespace std;
int g, l;
int main...
分类:
其他好文 时间:
2014-09-06 17:25:33
阅读次数:
288