求最大公约数的三种方法

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
}
int lb=decompose(n, b);
int i=0, j=0, k=0;
while(i<la && j<lb){
if(a[i]==b[j]){
c[k++]=a[i]; i++; j++;
}
else if(a[i] < b[j]) i++;
else j++;
}
int N=1;
for(i=0;i<k;i++) N*=c[i];
if (m%t == 0){
if (n%t == 0){
return t;
}
}
t--;
}
}பைடு நூலகம்
int gcd2(int m, int n){
int r = m%n;
while (r != 0){
m = n;
n = r;
r = m%n;
}
return n;
}
int decompose(int num, int p[])
return N;
}
void main(){
clock_t start, finish;
start = clock();
int m, n,i;
cout << "请输入m值" << endl;
cin >> m;
cout << "请输入n值" << endl;
cin >> n;
cout << "请选择方法" << endl;
case 2:cout << "最大公约数为:"<< gcd2(m, n) << endl;
break;
case 3:cout << "最大公约数为:"<<gcd3(m, n) << endl;
break;
}
finish = clock();
int time = finish - start;
cout << "程序运行时间为:" << time << "ms"<<endl;
{
int i=2, count=0;
while(i<=num){
while(num%i ==0){
p[count++]=i;
num/=i;
}
i++;
}
return count;
}
int gcd3(int m, int n)
{
int a[100], b[100], c[100];
int la=decompose(m, a);
//实验一.cpp :求最大公约数的三种算法//
#include "stdafx.h"
#include "time.h"
#include<iostream>
using namespace std;
int gcd1(int m, int n){
int t = m>n ? m : n;
while (t>0){
cout << "1.连续整数" << endl;
cout << "2.欧几里得算法" << endl;
cout << "3.分解质因数" << endl;
cin >> i;
switch (i){
case 1:cout<< "最大公约数为:" << gcd1(m, n) << endl;
break;
相关文档
最新文档