![]() |
#2
rjsp2020-03-26 23:20
|
输入一个正整数 n,输出 n 的所有约数的乘积 s。
输入
只有一行且只有一个正整数:n
输出
只有一行且只有一个正整数:s
样例
输入 复制
18
输出 复制
5832
提示
【样例说明】
18 的所有约数为:1、2、3、6、9、18 其乘积 s = 1 * 2 * 3 * 6 * 9 * 18 = 5832
【数据规模】
30% 的数据: 1 <= n <= 10^4
70% 的数据: 1 <= n <= 10^8
100% 的数据: 1 <= n <= 10^12

#include <bits/stdc++.h>
using namespace std;
int n;
long long s=1;
int main()
{
cin>>n;
for (int i=1; i<=n; i++)
{
if (n%i==0)
s*=i;
}
cout<<s;
return 0;
}
using namespace std;
int n;
long long s=1;
int main()
{
cin>>n;
for (int i=1; i<=n; i++)
{
if (n%i==0)
s*=i;
}
cout<<s;
return 0;
}
上面这段代码只能拿到40分,虽然很明显时间超了......谁能帮忙写个优化点的代码