详细解析题解(循环)两种总有你想要的
2025-08-15 20:03:17
发布于:上海
2阅读
0回复
0点赞
C++风格
#include <iostream>
#include <cmath>
using namespace std;
int main() {
int n;
cin >> n;
if (n == 1) {
cout << 1;
return 0;
}
int sum = 1 + n; // 1 和 n 一定是因数
for (int i = 2; i <= sqrt(n); i++) {
if (n % i == 0) {
if (i == n / i) {
sum += i; // 避免重复加(如 n = 16,i = 4)
} else {
sum += i + n / i;
}
}
}
cout << sum;
return 0;
}
C风格
#include <stdio.h>
#include <math.h>
int main() {
int n;
scanf("%d", &n);
if (n == 1) {
printf("1");
return 0;
}
int sum = 1 + n;
for (int i = 2; i <= sqrt(n); i++) {
if (n % i == 0) {
if (i == n / i) {
sum += i;
} else {
sum += i + n / i;
}
}
}
printf("%d", sum);
return 0;
}
这里空空如也
有帮助,赞一个