最近,小明在学校里学习了因数的有关知识。这天放学后,老师给出了一些正整数,让小明求出每个数的所有因数之和。这本是一道很简单的题目。但是由于老师给出的数字很多,有的数又很大,所以计算起来十分麻烦。
小明是一个懒惰的孩子,于是他找到了你——他的哥哥来帮他解决这个难题。当然这也不能怪他,谁让你总和他吹电脑的神通广大和你的编程技术的高超呢!看来,只能由你来为他解围了。
输入格式:
从键盘上输入一个正整数N(0 < N <= 1e12)。
输出格式:
将N的所有因数之和输出到屏幕上。
样例输入:
8
样例输出:
15
时间限制:
1000
空间限制:
512000
加载最近代码
1
1 个赞
你代码咋写的
1 个赞
啊这……
这个不是简单的吗?
代码:
#include <bits/stdc++.h>
using namespace std;
int main(){
long long n;
cin >> n;
long long ans = 0;
for (long long i = 1; i <= sqrt(n); i++){
if (n % i == 0){
if (i * i == n){
ans += i;
} else{
ans += i + n / i;
}
}
}
cout << ans;
}
1 个赞
你枚举 1\sim \sqrt{N} 的约数
1 个赞
没开long long (悲
1 个赞