本文介绍了如何以更快的方式找到给定数字的除数之和?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在解决一个问题,找到一个给定数字的除数之和(数字是一个大的),...我写了代码,它超出了时间限制......我可以减少在这种情况下的时间...请帮助我....在初学者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] 背后),为每个人阅读更容易。可以在找到更多发布指南。






这篇关于如何以更快的方式找到给定数字的除数之和?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-01 22:42