c++ - 检查完美数字的程序 - 出了点问题

标签 c++ numbers

<分区>

我必须编写一个函数来获取一个数字,并打印所有小于给定数字的完美数字。如果没有,该函数将打印一条适当的消息。 我刚刚编写的程序编译得很好,但它只工作了一部分。例如,如果输入数字是 5,出于某种原因,我没有收到任何消息,表明此范围内没有完美数字 (=until 5)。

有人可以向我解释一下这个程序有什么问题吗? 如果有任何帮助,我将不胜感激!

#include<iostream>

using namespace std;
void check (int num, int & j);
void main()
{

 int num,j, count;

 cout << "List all the perfect numbers less than: ";
 cin >> num;

 check (num, j);
}


 void check (int num, int & j)
 {
     int i,sum, count=0;
 for(j=2;j<num;num++)
 {
     sum=0;
   for(i=1;i<j;i++)
   { 
      if(j%i == 0)
      sum += i; 
   }

    if(sum == j)
    {cout << j <<endl; 
    count+=1;
    }
 }   

 if (count==0)
     cout<<"there are no perfect numbers"<<endl;
 }

最佳答案

您的代码中存在无限循环:

for(j=2;j<num;num++)

我觉得应该是

for(j=2;j<num;j++)

关于c++ - 检查完美数字的程序 - 出了点问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27576072/

相关文章:

javascript - parseFloat 不能使用小数点后的零

php - 创建一百万个短字符串的唯一整数/浮点哈希

c++ - 仅使用 <iostream> c++ 读取 .csv 文件并存储到数组中

c++ - 在 VBA 中模仿 std::map<string, std::list<string>>

java - NOT 和 AND 在正则表达式中一起运算以匹配不包括 -0.0 的数字(如 1.0、-3、-3.0)

haskell - Haskell 中数字的解释

python - 如何在 python 中对数字列表求和

c++ - 帮助 - 从 .txt 文件加载数字到变量 (c++)

c++ - 如何根据自定义逻辑将序列一一输出?

c++ - 为什么 std::to_string() 没有模板化?