最简单的
public static int gxd(int m, int n)
{
int gxd = 1;int result = 0;
for (; gxd <= m && gxd <= n;gxd++ )
{
if (m % gxd == 0 && n % gxd == 0)
result = gxd;
}
return result;
}
可惜效率不怎么的!
public static int gxd(int m, int n)
{
int gxd = 1;int result = 0;
for (; gxd <= m && gxd <= n;gxd++ )
{
if (m % gxd == 0 && n % gxd == 0)
result = gxd;
}
return result;
}
可惜效率不怎么的!
解决方案 »
- 大家好,我问个配置文件的
- c# 怎么实现TCP外网访问内网!
- aspx 页面想直接调用 类文件中的方法 怎么做?
- 动态加载DLL时,使用asm.GetType("xx.dll") 返回值为null?
- 已知dataGrid填上了数据,请问怎么得到有几列,每一列的标题是什么?
- sql2000和C#
- @@按下Button中如何发邮件在OnClick中 mailto:????????
- 按热键显示或隐藏某个程序的窗口,请问怎么做?
- WPF DataGrid ColumnHeaderHeight 的问题
- 大家一起学习C#吧,哇,真的用的爽啊!!!
- C# 对本地sql 数据库操作
- 关于GridView的数据绑定
int zuidagongyue(int m,int n)
{
if (m < n)
{
int tmp = m;
m = n;
n = tmp;
}
if (n == 0)
return m;
else
return zuidagongyue(n,m % n);
}
//非递归实现
int zuidagongyue2(int m,int n)
{
if (m < n)
{
int tmp = m;
m = n;
n = tmp;
}
if (n == 0)
return m;
while (n > 0)
{
int tmp = m % n;
m = n;
n = tmp;
}
return m;
}
{
int gcd;
if (a < b)
gcd = GCD(b, a);
else
{
while (b != 0)
{
int t = a % b;
a = b;
b = t;
}
gcd = a;
}
return gcd;
}
{
if (a < b)
return GCD(b, a);
else if (a == b)
return a;
while (b != 0)
{
int t = a % b;
a = b;
b = t;
}
return a;
}
{
if (a < b)
return GCD(b, a);
else if (a == b)
return a;
while (b != 0)
{
ulong t = a % b;
a = b;
b = t;
}
return a;
}
//主体
int rr(int m,int n)
{
while(m&&n) m>n?m=m%n:n=n%m;
return m=m>n?m:n;
}
int main()
{
int m,n;
while(scanf("%d%d",&m,&n)==2)
printf("%d\n",rr(m,n));
return 0;
}