0
董宇昊
初级启示者
初级启示者
#include<iostream>
#include<cmath>
using namespace std;
int sum;
int main(){
int n,t[500005];
cin>>n;
for(int i=1;i<=n;i++) cin>>t[i];
for(int i=1;i<=n;i++){
for(int j=1;j<=sqrt(t[i]);j++){
if(t[i]%j==0){
sum+=j;
sum+=t[i]/j;
}
}
cout<<sum<<endl;
}
return 0;
}
为什么20分?
5543 数字游戏(number)
经验值:1200
不许抄袭,一旦发现,直接清空经验!
题目描述 Description
小萱萱刚学习完约数的知识,一个数的约数指能整除这个数的正整数。周末,小萱萱和几个朋友一起玩耍,刚学习完约数知识的小萱萱迫不及待的想给小朋友们展示一下她的本领,她和几个朋友一起玩起了这样一个游戏:给你一个整数N,需要算出这个数所有的约数的和。例如15的数有1, 3, 5, 15。所以15的约数和为1+3+5+15=24.
输入描述 Input Description
本题有多组数据,第一行一个T,表示有T组数据;下面T行,每行一个正整数N,表示要处理的数。
输出描述 Output Description
T行,每行一个正整数,表示输入中对应的数的约数和。
样例输入 Sample Input
1
15
样例输出 Sample Output
24
数据范围及提示 Data Size & Hint
对于20%的数据,T=1;
对于50%的数据,T≤5000;
对于80%的数据,T≤50000;
对于100%的数据,T≤500000,N≤5000000。
董宇昊在2020-10-22 19:47:01追加了内容
盗我号的
@王鑫烨 @那个什么凯
董宇昊在2020-10-22 19:54:42追加了内容
我估计我马上就会被禁言
董宇昊在2020-10-22 20:07:03追加了内容
@沙宸安
非要我超时吗?
0
0
李瑞曦
高级天翼
高级天翼
这题需要预处理,和我有长辈那道题的思路差不多
李瑞曦在2020-10-22 19:55:17追加了内容
我还没做完,做出了告诉你,先占个位~
0
0
0
沙宸安
高级启示者
高级启示者
if(t[i]%j==0){
sum+=j;
sum+=t[i]/j;
}
建议不要使用这种危险的代码,保守点用1循环到t[i]。
沙宸安在2020-10-22 20:01:47追加了内容
请您再试试
0
0
李瑞曦
高级天翼
高级天翼
for(int i=1;i<=5000000;i++){//预处理,运用埃氏筛的核心思想
for(int j=i;j<=5000000;j+=i){
s[j]+=i;
}
}
循环t次{
输入n
输出s[n]并换行
}
t是t组数据
n是每组数据的那个整数
s数组》》预处理
-----------------------------------------
有事@我
0
0
0
0
0
0
0
张恩泽
高级天翼
高级天翼
这样输入:
scanf(“%d”, T);
这样输出:
printf ("%d, s[n]");
记得加头文件:#include <cstdio>
0
0
李显晨
中级启示者
中级启示者
for(int i=1;i<=5000000;i++){//预处理,运用埃氏筛的核心思想
for(int j=i;j<=5000000;j+=i){
s[j]+=i;
}
}
循环t次{
scanf("%d",&n);
printf ("%d\n",s[n]);
}
t是t组数据
n是每组数据的那个整数
s数组》》预处理
-----------------------------------------
我在@李瑞曦的代码上进行了优化,不是抄袭
0
0
0
0
蔡乐毅
高级光能
高级光能
0
0