【发布时间】:2015-08-24 13:35:42
【问题描述】:
我一直在努力解决这个问题。
http://www.spoj.com/problems/DIV/
为了计算整数因子,我尝试了两种方法
首先:正常的 sqrt(i) 迭代。
int divCount = 2;
for (int j = 2; j * j <= i ; ++j) {
if( i % j == 0) {
if( i / j == j )
divCount += 1;
else
divCount += 2;
}
}
第二个:使用素数分解(素数 - 筛子)
for(int j = 0; copy != 1; ++j){
int count = 0;
while(copy % primes.get(j) == 0){
copy /= primes.get(j);
++count;
}
divCount *= ( count + 1);}
虽然输出正确,但我得到了 TLE。可以做更多的优化吗?请帮忙。谢谢
【问题讨论】:
-
TLE? TLA 太多了——三个字母的首字母缩写词。
-
超过时间限制 - 运行时间比在线评委预期的要长。
-
获得或没有特定语言
-
我用的是java,语言没有限制。
-
我的意思是如果我发python,你能理解吗?
标签: math factorization number-theory