本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。
学习了约数后,小明对于约数很好奇,他发现,给定一个正整数 t,总是可以找到含有 t 个约数的整数。小明对于含有 t 个约数的最小数非常感兴趣,并把它定义为 St 。
例如 S_1 = 1, S_2 = 2, S_3 = 4, S_4 = 6,· · ·S1=1,S2=2,S3=4,S4=6,⋅⋅⋅ 。
现在小明想知道,当 t = 100,t=100 时,St 是多少?即S100 是多少?
运行限制
- 最大运行时间:1s
- 最大运行内存: 128M
解题思路:
这道题为填空题,只要能够运算出来正确答案,即为通过。
思路一:纯纯暴力求值,就是从1开始遍历,找到目标约数个数为100的数值。
思路二:暴力法,这个跟思路一的暴力法不一样的是通过认为运算,减少一些不可能的数值来减少时间。
思路一完整代码:
#include <iostream>
using namespace std;
int main()
{
// 请在此输入您的代码
int i,j,k;
for(i=99;;i++){
for(j=1;j<=i;j++){
if(2*i%j==0){
k++;
}
}
if(k==99){
break;
}
k=0;
}
cout<<i*2;
return 0;
}
思路二完整代码:
#include <bits/stdc++.h>
using namespace std;
int fun(int n)
{
int sum=1;
for(int i=1;i<=n/2;i++)
{
if(n%i==0)
{
sum++;
}
}
return sum;
}
int main()
{
// 请在此输入您的代码
int x;
for(int i=40000;i<50000;i++)
{
if(fun(i)==100)
{
x=i;
break;
}
}
cout<<x;
return 0;
}