#include<stdio.h>
int gcd(int m,int n);
int min(int m,int n,int g);
int main(void)
{
int m,n,g1,g2;
printf("请输入两个数字:\n");
scanf("%d%d",&m,&n);
g1 = gcd(m,n);
g2 = min(m,n,g1);
printf("这两个数的最大公约数是%d,最小公倍数是%d",g1,g2);
return 0;
}
int gcd(int m,int n)
{
int r;
while(n!=0)
{
r = m % n;
m = n;
n = r;
}
return m;
}
int min(int m,int n,int g)
{
return m*n/g;
}
1709c-exercise-example16
参考方法:
#include<stdio.h>
int gcd(int a,int b) //求最大公约数的函数
{
int x;
while(a%b!=0)
{
x=a%b;
a=b;
b=x;
}
return b;
}
int ext(int *a,int *b) //交换算法
{
int c;
c=*a;
*a=*b;
*b=c;
return 0;
}
int main()
{
int a,b,c,min_g,max_g;
printf("请输入两个不相等的正整数:");
scanf("%d %d",&a,&b) ;
if(a<b)
ext(&a,&b);
/*{
c=a;
a=b;
b=c;
}
printf("%d %d\n",a,b);*/
min_g=gcd(a,b);
max_g=a*b/min_g;
printf("%d和%d的最大公约数为:%d\n",a,b,min_g);
printf("%d和%d的最小公倍数为:%d\n",a,b,max_g);
return 0;
}
1708c-exercise-example16
参考代码:
写的不好看,但思路还是比较清晰的,暂时也没出现bug
#include<stdio.h>
void f14(int m,int n){
int i=0;
int num=1;
int temp1=m,temp2=n;//用两个变量寄存m,n的值
int min=m<n?m:n;//求得m,n中的较小值
for(i=2;i<=min;i++){
if((m%i==0)&&(n%i==0)){
//printf("%d\n",i);
num*=i;
m=m/i;
n=n/i;
min=min/i;
i=1;//i的还原,不然在执行一次循环体后,i++=3,下次循环时,会将i=2这个商给跳过,出现问题
//printf("%d\n",min);
}
}
printf("最大公约数为:%d\n",num);
printf("最小公倍数为:%d\n",temp1*temp2/num);
}
int main(){
printf("请输入两个数:");
int m,n;
scanf(" %d %d",&m,&n);
f14(m,n);
return 0;
}
1707c-exercise-example16
参考方法:
#include<stdio.h>
int main()
{
int i, j;
int m = 0;
int s;
printf("请输入两个数字:\n");
scanf("%d %d", &i, &j);
m = i < j ? i : j;
for (s = m; s >= 1; s--) {
if (i%s == 0 && j%s == 0)
{
printf("最大公约数=%d\n",s);
printf("最小公倍数=%d\n",i*j/s);
break;
}
}
return 0;
}
1706c-exercise-example16
最大公约数参考方法:
#include<stdio.h>
int main(void)
{
int m,n,x,maxx,minx,z;
printf("输入2个正整数:");
scanf("%d%d",&m,&n);
z=m>n?n:m;
for(x=2;x<=z;x++)
if(m%x==0&&n%x==0)
maxx=x;
printf("%d\n",maxx);
minx=m*n/maxx;
printf("%d",minx);
return 0;
}
1710c-exercise-example16
参考方法:
1709c-exercise-example16
参考方法:
1708c-exercise-example16
参考代码:
写的不好看,但思路还是比较清晰的,暂时也没出现bug
1707c-exercise-example16
参考方法:
1706c-exercise-example16
最大公约数参考方法: