我把楼上的程序改了一下,他有的地方错了
#include "stdio.h"
main()
{ int factor(int a,int b);
int m,n;
scanf("%d%d",&m,&n);
factor(a,b);
}
int factor(int a,int b)
{ int t,i=1;
while (i<=a&&i<=b)
{ if(a%i==0&&b%i==0)
t=i;
i++;
}
printf ("最大公约数为%d\n",t);
return 0;
}
这样应该能用了。
#include "stdio.h"
main()
{ int factor(int a,int b);
int a,b;
scanf("%d%d",&a,&b);
n1(a,b);
}
int factor(int a,int b)
{ int t,i=1;
while (i<=a&&i<=b)
{ if(a%i==0&&b%i==0)
t=i;
i++;
}
printf ("最大公约数为%d\n",t);
return 0;
}
你将a,b改换为m,n
我把楼上的程序改了一下,他有的地方错了
#include
"stdio.h"
main()
{
int
factor(int
a,int
b);
int
m,n;
scanf("%d%d",&m,&n);
factor(a,b);
}
int
factor(int
a,int
b)
{
int
t,i=1;
while
(i<=a&&i<=b)
{
if(a%i==0&&b%i==0)
t=i;
i++;
}
printf
("最大公约数为%d\n",t);
return
0;
}
这样应该能用了。
给你个高效的算法,欧几里德算法,比较高效。。
#include
using namespace std;
int oucud(int a,int b)
{
if(a*b==0 || a*b==1) return 1;
if(a%b==0) return b;
if(b%a==0) return a;
if(a>b)
return oucud(a%b,b);
else
return oucud(a,b%a);
}
void main()
{
int a,b;
while(cin>>a>>b)
cout<
}
#include
"stdio.h"
int
main(){
int
num1,num2,num3,maxnum,minnum;
printf("Enter
two
numbers:\n");
scanf("%d,%d",&num1,&num2);
if(num1<=num2){
minnum=num1;
maxnum=num2;
}
else{
minnum=num2;
maxnum=num1;
}
num3=maxnum%minnum;
while(num3){
maxnum=minnum;
minnum=num3;
num3=maxnum%minnum;
}
printf("%d\n",minnum);
return
0;
}