题解,最优解
2024-01-25 14:13:27
发布于:浙江
61阅读
0回复
0点赞
#include <iostream>
#include <cmath>
using namespace std;
// 检查数字是否为完全数的函数
bool isPerfect(int num) {
if (num % 2 != 0) {
return false; // 所有已知完全数都是偶数
}
int sum = 1;
int sqrtNum = (int)sqrt(num);
for (int i = 2; i <= sqrtNum; ++i) {
if (num % i == 0) {
sum += i;
if (i != num / i) {
sum += num / i;
}
}
}
return sum == num && num != 1;
}
int main() {
int n;
cin >> n; // 输入上限
// 检查 2 到 n 之间的完全数
for (int i = 2; i <= n; i += 2) { // 只检查偶数
if (isPerfect(i)) {
cout << i << endl; // 打印完全数
}
}
return 0;
}
这个是目前最快的,5毫秒
全部评论 1
有1ms的
//6
//28
//496
//8128
#include<iostream>
using namespace std;
int main(){
int n;
cin>>n;
if(n>=6)cout<<6<<endl;
if(n>=28)cout<<28<<endl;
if(n>=496)cout<<496<<endl;
if(n>=8128)cout<<8128<<endl;
return 0;
}2024-07-22 来自 广东
0
有帮助,赞一个