本文介绍了如何以更快的方式找到给定数字的除数之和?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在解决一个问题,找到一个给定数字的除数之和(数字是一个大的),...我写了代码,它超出了时间限制......我可以减少在这种情况下的时间...请帮助我....在初学者2编程在c :)
Hre是我的代码:
# include< stdio.h>
int main()
{
long long int k,n,t,sum = 0;
scanf("%lld",& t);
while(t)
{
scanf( "%lld"& n);
for(k = 1; k< n; k ++)
{
if( n%k == 0)
{
sum = sum + k;
}
}
printf("%lld \ n",sum);
t - ;
sum = 0;
}
系统(暂停);
返回0;
}
解决方案
你可以轻松跳过这里有很多数字,你只需要考虑它背后的数学。想想这个例子:什么是最高的除数我我会找到一个数字(当然不包括数字本身)?
如果你可以在循环之前计算这个数字(或它的近似值),你只需要达到这个数字,而不是一直到给定的数字。
我很确定如果再深入研究一下,你可以找到其他方法加快速度。
PS:如果你在代码标签中发布你的代码(把 [code] 放在代码前面并且 [/ code] 背后),为每个人阅读更容易。可以在找到更多发布指南。
这篇关于如何以更快的方式找到给定数字的除数之和?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!