#include<stdio.h>
int gcd(int a, int b) //lgcd最大公因数
{
int i = 0, g = 0;
int m = 0;
m = a < b? a : b;
for(i = 1; i < m; i++)
{
if(a%i == 0 && b%i == 0)
{
g = i;
}
}
return g;
}
int main()
{
int a = 0, b = 0;
int c = 0;
printf("Input number a, b:");
scanf("%d%d",&a,&b);
c = gcd(a, b);
printf("Output gcd = %d",c);
return 0;
}
扩展资料:
c语言需要说明的是:
2.每个源文件可由一个或多个函数组成;
3.一个源程序不论由多少个文件组成,都有一个且只能有一个main函数,即主函数。是整个程序的入口;
4.源程序中可以有预处理命令(包括include 命令,ifdef、ifndef命令、define命令),预处理命令通常应放在源文件或源程序的最前面;
5.每一个说明,每一个语句都必须以分号结尾。但预处理命令,函数头和花括号“}”之后不能加分号。结构体、联合体、枚举型的声明的“}”后要加“ ;”;
6.标识符,关键字之间必须至少加一个空格以示间隔。若已有明显的间隔符,也可不再加空格来间隔。
参考资料:
#include <stdio.h>
int max(int p_a,int p_b)
{
if(p_b==0)
return p_a;
else
return max(p_b,p_a%p_b);
}
void main()
{
int a,b;
printf("Input two numbers:\n");
scanf("%d %d",&a,&b);
if(b<a)
printf("最大公约数为:%d\n",max(a,b));
else
printf("最大公约数为:%d\n",max(b,a));
}
已经调试过了,没有问题:
Input two numbers:
2 8
最大公约数为:2
Input two numbers:
3 9
最大公约数为:3
逝水无痕真诚为您解答!
max(a,b)/min(a,b)是整数,则最大公约数是min(a,b)
否则
i=√min(a,b) to 1
min(a,b)/√min(a,b)整数,max(a,b)/√min(a,b)整数,结束
i--
int number(int x, int y)
{
int s,i,j;
if(x<y)
{
for(i=x;i>0;i--)
{
if(x%i==0 && y%i==0)
{
s=i;
break;
}
}
}
else
{
for(i=y;i>0;i--)
{
if(x%i==0 && y%i==0)
{s=i;
break;}
}
}
return(s);
}
int main()
{
int x,y,c;
scanf("%d %d",&x,&y);
c=number(x,y);
printf("%d",c);
return 0;
}
楼主你好,这是源程序,是用辗转相除法写的
#include <stdio.h>
int max(int p_a,int p_b)
{
if(p_b==0)
return p_a;
else
return max(p_b,p_a%p_b);
}
void main()
{
int a,b;
printf("Input two numbers:\n");
scanf("%d %d",&a,&b);
if(b<a)
printf("最大公约数为:%d\n",max(a,b));
else
printf("最大公约数为:%d\n",max(b,a));
}
已经调试过了,没有问题:
Input two numbers:
2 8
最大公约数为:2
Input two numbers:
3 9
最大公约数为:3
逝水无痕真诚为您解答!