为什么我写的代码会多一个7和29
代码:#include
using namespace std;
int main(){
//在这里输入您的程序
int b;
for(int i=1;i<=10000;i++){
for(int j=1;j<i;j++){
if(i%j==0){
b=b+j;
}
}
if(b!=i){
b=0;
}else if(b==i){
cout<<i<<endl;
}
}
return 0;
}
给你改好了:主要是因为每次计数后只有不符合完数的才清零,像6是完数没清零就进入下一次循环了
#include <bits/stdc++.h>
using namespace std;
int main()
{
//在这里输入您的程序
int b=0;
for(int i=2; i<=10000; i++)
{
b=0;
for(int j=1; j<=i/2; j++)
{
if(i%j==0)
{
b=b+j;
}
}
if(b!=i)
{
b=0;
}
else
{
cout<<i<<endl;
}
}
return 0;
}