【发布时间】:2016-07-23 18:26:29
【问题描述】:
我在 coderforces 上遇到了一个名为 divisors 的问题。
我相信我已经解决了它,但它给了我一个超出时间限制错误,所以我尽我所能使它更短,但仍然是同样的错误。
在这个问题中,我必须给出这个数字应该有多少个除数。
我的代码是:
#include <iostream>
using namespace std;
int main(){
long long t, x;
int res = 2;
cin >> t;
for (int j = 0; j < t; j++){
cin >> x;
for (int i = 2; i <= x / 2; i++){
if (x%i == 0){
res++;
}
}
cout << res << endl;
}
return 0;
}
示例输入应该是:
3
12
7
36
输出应该是:
6
2
9
【问题讨论】:
-
那么,您的问题究竟是什么?
-
@MohamedMoanis 我想在循环中缩短代码以避免超过时间限制,但我不知道如何
-
那么你必须打印从 1 到
t的每个数字有多少个除数? -
@Polb t 是测试用例,我必须打印从 1 到 x 有多少除数x
-
我猜你需要看看this