搜索
编程论坛
→
开发语言
→
『 C语言论坛 』
→ c语言 求求两个数之间的最大公约数
标题:
c语言 求求两个数之间的最大公约数
只看楼主
小米一
等 级:
新手上路
帖 子:6
专家分:0
注 册:2008-11-6
楼主
问题点数:0 回复次数:20
c语言 求求两个数之间的最大公约数
在线的帮忙看下 感激不尽啊
求两个数之间的最大公约数,我是这样写的,在turbo c的环境下编写的,内容如下:
main()
{
int a,b,i,max;
scanf("%d,%d",&a,&b);
for(i=1;i<=1000;i++){
if(a%i==0&&b%i==0) max=i;
}
printf("%d",max);
}
实际的运行情况竟然是1.换了很多个数都是这样。请大家指出来或者完善这个程序,谢谢
搜索更多相关主题的帖子:
c语言
最大公约数
2008-11-06 14:59
小米一
等 级:
新手上路
帖 子:6
专家分:0
注 册:2008-11-6
第
2
楼
得分:0
这里的高手都不在线么?...看看啊
2008-11-06 15:02
牧人
等 级:
新手上路
帖 子:126
专家分:0
注 册:2008-10-22
第
3
楼
得分:0
/*输入两个正整数m和n,求其最大公约数和最小公倍数。*/
#include<stdio.h>
main()
{
int m,n,a,b,temp;
printf("Enter two num,Please!");
scanf("%d%d",&m,&n);
if(m<n)
{
temp=m;
m=n;
n=temp;
}
a=m;
b=n;
while (n!=0)
{
temp=m%n;
m=n;
n=temp;
}
printf("%d,%d\n",m,a*b/n);
}
看看这个可以参考参考
2008-11-06 15:06
牧人
等 级:
新手上路
帖 子:126
专家分:0
注 册:2008-10-22
第
4
楼
得分:0
/*输入两个正整数m和n,求其最大公约数和最小公倍数。*/
#include<stdio.h>
main()
{
int m,n,a,b,temp;
printf("Enter two num,Please!");
scanf("%d%d",&m,&n);
if(m<n)
{
temp=m;
m=n;
n=temp;
}
a=m;
b=n;
while (n!=0)
{
temp=m%n;
m=n;
n=temp;
}
printf("%d,%d\n",m,a*b/n);
}
看看这个可以参考参考
2008-11-06 15:08
小米一
等 级:
新手上路
帖 子:6
专家分:0
注 册:2008-11-6
第
5
楼
得分:0
是不是我这类人都笨的可以..
2008-11-06 15:09
scheelite
等 级:
新手上路
帖 子:45
专家分:0
注 册:2008-11-5
第
6
楼
得分:0
#include<stdio.h>
int min(int,int);
main()
{
int a,b,i,max;
scanf("%d,%d",&a,&b);
for(i=2;i<=min(a,b);i++)
if(a%i==0&&b%i==0) max=i;
printf("%d",max);
}
int min(int a,int b)
{return(a>b?a:b);
}
一般不用这个算法,
2008-11-06 15:12
小米一
等 级:
新手上路
帖 子:6
专家分:0
注 册:2008-11-6
第
7
楼
得分:0
查了很多以前的帖子 就一个感觉
想在自己的这个错误的基础上改革一下...
2008-11-06 15:13
elysion
等 级:
新手上路
帖 子:11
专家分:0
注 册:2008-11-6
第
8
楼
得分:0
回复 5# 的帖子
我也笨的可以 没看懂你写的
2008-11-06 15:14
小米一
等 级:
新手上路
帖 子:6
专家分:0
注 册:2008-11-6
第
9
楼
得分:0
#include<stdio.h>
void main()
{
int m,n,x,a;
printf("input two integers:");
scanf("%d%d",&m,&n);
x=m<n?n:m;
while(!(x%m==0&&x%n==0))
{x++;}
a=m*n/x;
}
x是最小公倍数,a是最大公约数。 哭死 ...这个对吗
2008-11-06 15:15
死亡军团
等 级:
论坛游民
威 望:
2
帖 子:166
专家分:20
注 册:2008-11-4
第
10
楼
得分:0
我这里有一个求两个数的最大公约数和最小公倍数的程序,,但是我这是在vc 6.0环境下写的,,你可以试一试:
#include <stdio.h>
void main ()
{
int gcd(int a,int b);
int lcd(int a,int b,int h);
int a,b,h,l;
printf("请输入两个整数ab\n");
scanf("%d,%d",&a,&b);
h=gcd(a,b);
l=lcd(a,b,h);
printf("最大公约数是%d\n",h);
printf("最小公倍数是%d\n",l);
}
int gcd(int a,int b)
{
int m,r;
if (b>a) {m=a;a=b;b=m;}
while ((r=a%b)!=0) \*用辗转相除法求最大公约数*\
{
a=b;b=r;
}
return (b);
}
int lcd(int a,int b,int h)
{
return (a*b/h) ;
}
2008-11-06 15:18
21
1/3页
1
2
3
参与讨论请移步原网站贴子:
https://bbs.bccn.net/thread-242749-1-1.html
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.207570 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved