c语言求最大公约数运行结果不对,计算最大公约数时出现很奇怪的结果,你也运行一下看看...

通过实验发现,使用穷举法计算接近的大数之间的最大公约数(GCD)时,计算时间并未随数值增大而显著增加。文章分享了一段C语言实现的代码,并提供了不同数量级数字对的计算时间,邀请读者一同探讨原因。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

#include

unsigned int ***(unsigned int x,unsigned int y);

int main()

{

unsigned int a,b,c;

printf("The first number:\n");

scanf("%d",&a);

printf("The second number:\n");

scanf("%d",&b);

c=***(a,b);

printf("最大公约数是:%d\n",c);

return 0;

}

unsigned int ***(unsigned int x,unsigned int y)

{

unsigned int t;

t=x

while(x%t!=0||y%t!=0)

t--;

return t;

}

这是穷举法计算两个数的最大公约数的一个源程序,遇到一个感兴趣的问题。

比如,在我计算机上

用它计算100亿和100亿零1的最大公约数用时6s左右,

计算1000亿和1000亿零1的最大公约数用时6s左右,

计算1万亿和1万亿零1的最大公约数用时14s左右,

计算10万亿和10万亿零1的最大公约数用时6s左右,

计算100万亿和100万亿零1的最大公约数用时1s左右,

计算1000万亿和1000万亿零1的最大公约数用时6s左右,

计算1亿亿和1亿亿零1的最大公约数用时7s左右,

计算10亿亿和10亿亿零1的最大公约数用时7s左右,

My god!!! 我凌乱了,用时就算没有比例关系也该越来越长吧,怎么这样的结果?

希望吧友们帮忙运行一下然后帮忙解释。

( 注:在我用C4droid

计算1000万和1000万零1的最大公约数用时约1s,

1亿和1亿零1的最大公约数用时约9s,

10亿和10亿零1的最大公约数用时约90s, )

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值