6个回答
展开全部
#include <stdio.h>
int MaxFactor(int m,int n) { // 最大公约数
int t;
if(n < m) { t = n;n = m;m = t; }
for(t = m;t > 0;t--) {
if(m % t == 0 && n % t == 0)
return t;
}
return 1; // 永远得不到执行。
}
int MinMulriple(int m,int n) { // 最小公倍数
int t;
if(m > n) { t = n;n = m;m = t; }
if(n % m == 0) return n;
for(t = n;t <= n * m;t++) {
if(t % m == 0 && t % n == 0)
return t;
}
return m * n; // 永远得不到执行。
}
int main() {
int m,n;
while(scanf("%d%d",&m,&n) == 2) {
printf("%d, %d 最大公约数为 : %d\n",m,n,MaxFactor(m,n));
printf("%d, %d 最小公倍数为 : %d\n",m,n,MinMulriple(m,n));
}
return 0;
}
追问
我想要只是最小公倍数的怎么写啊,刚学这个完全看不懂,多谢
追答
int MinMulriple(int m,int n) { // 最小公倍数
int t;
if(m > n) { t = n;n = m;m = t; } // 确保m < n
if(n % m == 0) return n; // 如果较大数能被较小数整除,较大数就是最小公倍数
for(t = n + 1;t <= n * m;t++) { // 从n + 1到 n * m中寻找最小公倍数
if(t % m == 0 && t % n == 0) // 判断是否都能被两个数整除
return t; // 能,则返回这个数,也就是最小公倍数
}
return m * n; // 永远得不到执行,之所以保留,是因为编译程序的需要。、
}
展开全部
#include<stdio.h>
void main()
{
int m,n,i,,max;
scanf("%d%d",&m,&n);//求其最大公倍数和最小公倍数
max=(m>n)?m:n;
for(i=max;i<=m*n;i++)
if(i%m==0&&i%n==0) break;
printf("最小公倍数:%d",i);
return 0;
}
void main()
{
int m,n,i,,max;
scanf("%d%d",&m,&n);//求其最大公倍数和最小公倍数
max=(m>n)?m:n;
for(i=max;i<=m*n;i++)
if(i%m==0&&i%n==0) break;
printf("最小公倍数:%d",i);
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include"stdio.h"
main()
{
int m,n,i,j,k,g,t;
scanf("%d%d",&m,&n);
if(m<=n)
{
k=m;
m=n;
n=k;
}
for(i=n;i>=0;i--)
{
if((m%i==0)&&(n%i==0))
{
g=i;
break;
}
}
for(j=m;;j++)
{
if((j%m==0)&&(j%n==0))
{
t=j;
break;
}
}
printf("%d,%d",g,t);
}
main()
{
int m,n,i,j,k,g,t;
scanf("%d%d",&m,&n);
if(m<=n)
{
k=m;
m=n;
n=k;
}
for(i=n;i>=0;i--)
{
if((m%i==0)&&(n%i==0))
{
g=i;
break;
}
}
for(j=m;;j++)
{
if((j%m==0)&&(j%n==0))
{
t=j;
break;
}
}
printf("%d,%d",g,t);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include<stdio.h>
main(void)
{int m,n,lcm;
printf("Input two positive intergers:");
scanf("%d%d",&m,&n);
if(m<n)
lcm=n;
else
lcm=m;
while(lcm%m!=0 || lcm%n!=0)
lcm++;
printf("lcm=%d\n",lcm);
return 0;
}
main(void)
{int m,n,lcm;
printf("Input two positive intergers:");
scanf("%d%d",&m,&n);
if(m<n)
lcm=n;
else
lcm=m;
while(lcm%m!=0 || lcm%n!=0)
lcm++;
printf("lcm=%d\n",lcm);
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询