我运行了,得到了答案,只有三个,不晓得正确不:6,28,496
还有,我只在你的程序上改了两处
第一,是第一个循环的条件上,不应该是6,应该是M
第二,是每次判断完了,都应该把N变为0,所以我在第一个循环的第一句下面加了一个N=0,
#include
using namespace std;
void main()
{
int m,n;
m=500;
n=0;
for (int i=1;i<=m;i++)
{
for (int r=1;r {
if (i%r==0)
{
n=n+r;
}
}
if(n==i)
{
cout<
n=0;
}
}
看哈,是不是你想要的答案?????
#include
main()
{
int i , j , sum ;/*定义三个变量 , i是被除数 ,j 是除数 , sum 是记录因子的和*/
for(i = 1 ; i <= 500 ; i++){ /*被除数的范围*/
sum = 0 ;/*因子的和每次开始都为0*/
for(j = 1 ; j < i ; j++) /*除数的范围*/
if(i % j == 0)
sum += j ;/*如i能j被j整除,将其放入sum中*/
if(sum == i)
cout<<"The result is %d"<
我电脑里没有编译器,我在网上找了个,只要看懂算法就没多大问题了,
int i , j , sum ;/*定义三个变量 , i是被除数 ,j 是除数 , sum 是记录因子的和*/
for(i = 1 ; i <= 1000 ; i++){ /*被除数的范围*/
sum = 0 ;/*因子的和每次开始都为0*/
for(j = 1 ; j < i ; j++) /*除数的范围*/
if(i % j == 0)
sum += j ;/*如i能j被j整除,将其放入sum中*/
if(sum == i)
printf("The result is %d\n" , sum) ;/*若因子的和与i相同就输出*/
}