问题描述
学习了约数后,小明对于约数很好奇,他发现,给定一个正整数 t,总是可以找到含有 t 个约数的整数。
小明对于含有 t 个约数的最小数非常感兴趣,并把它定义为 St 。
例如 S1 = 1, S2 = 2, S3 = 4, S4 = 6,···。
现在小明想知道,当 t = 100 时,St 是多少?即 S100 是多少?
答案提交
这是一道结果填空的题,你只需要算出结果后提交即可。
本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。
答案:45360
题解一
朴素解法:6s 左右
#include <iostream>
using namespace std;
int main()
{
for (int i = 1; i <= 100000; i ++)
{
int cnt = 0;
for (int j = 1; j <= i; j ++)
if(i % j == 0) cnt ++;
if(cnt == 100)
{
cout << i << endl;
return 0;
}
}
}
题解二
稍加优化:0.15s 左右
#include <iostream>
using namespace std;
int main()
{
for (int i = 1; i <= 100000; i ++)
{
int cnt = 0;
for (int j = 1; j <= i / j; j ++)
if(i % j == 0) cnt += 2;
else if(j * j == i) cnt ++;
if(cnt == 100)
{
cout << i << endl;
return 0;
}
}
}