给2个正整数a,b(1<=a,b<=10^100),求a和b的最小公倍数

cybot7yxy 2011-01-26 11:10:41
我想用C语言实现上功能,a和b都是超级大数,无法用已有数据类型实现,请问该怎么办?
...全文
999 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
TimZhuFaith 2011-01-30
  • 打赏
  • 举报
回复
很好奇怎么处理。。初学莫怪[Quote=引用 12 楼 xiangnian1993 的回复:]
大的数据就用数组存储,就能解决了
[/Quote]
Aunrea 2011-01-30
  • 打赏
  • 举报
回复
大的数据就用数组存储,就能解决了
FancyMouse 2011-01-30
  • 打赏
  • 举报
回复
>给每个大数做素因子分解
不知者无畏啊
绿色夹克衫 2011-01-30
  • 打赏
  • 举报
回复
10^100不算太大,用二进制的GCD就行,好处在于不用大数求mod,只用位移和减法就可以。
测试昵称666 2011-01-29
  • 打赏
  • 举报
回复
没看清楚。
如果是大数先用数组表示。

然后可以用大数除大数的模板

一直找两者公约数,通过这样求最大公约数。

不过应该很麻烦。
测试昵称666 2011-01-29
  • 打赏
  • 举报
回复
辗转相除法

可以先求gcd(a, b)(最大公约数)

那么最小公倍数就是 a*b/gcd(a,b)

关于GCD,百度一大排。我就不贴了。
赵4老师 2011-01-27
  • 打赏
  • 举报
回复
用C# BigInteger
用Python
用Ruby
qq120848369 2011-01-27
  • 打赏
  • 举报
回复
那就别用GCD了,给每个大数做素因子分解,然后提取公共因子,都乘起来就是最大公约数了。

之后求最小公倍数还是老办法。

你可以查查mod操作大数库里有没有,有的话就不用这么麻烦了。
lx3275852 2011-01-27
  • 打赏
  • 举报
回复
自己定义数组,表示大数,自己定义乘除运算,自己定义输出…………
yong_f 2011-01-27
  • 打赏
  • 举报
回复
求最大公约数XX




int gcd(int a,int b) //a > b
{
int temp;
while(b!=0)
{
temp=a%b;
a=b;
b=temp;
}
return a;
}


最大公倍数为 A * B / gcd(A, B) //A>B
flysnowhite 2011-01-27
  • 打赏
  • 举报
回复
用数组或链表存储大数,采用辗转相除法进行计算。
整型数组里的每个元素存储4位,好多书上有现成的例子。
weerweer 2011-01-27
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 la_feng 的回复:]

基于辗转相除法,应该是可以用减法实现的,大数就用数组表示
[/Quote]
++
la_feng 2011-01-26
  • 打赏
  • 举报
回复
基于辗转相除法,应该是可以用减法实现的,大数就用数组表示

69,377

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧