完数定义:
完全数(Perfect number),又称完美数或完备数,是一些特殊的自然数。它所有的真因子(即除了自身以外的约数)的和(即因子函数),恰好等于它本身。
如果一个数恰好等于它的真因子之和,则称该数为“完全数”。第一个完全数是6,第二个完全数是28,第三个完全数是496,后面的完全数还有8128、33550336等等。截至2018年,相关研究者已经找到51个完全数
下面是错误代码
#include <iostream>
using namespace std;
int main()
{int sum = 0;
for (int i=2;i <= 1000;i++)
{for (int j = 1;j <i;j++){if (i %j == 0){sum += j;}}if (i==sum ){cout << i <<endl;for (int j = 1;j < i;j++){if (i % j == 0){cout << j<<endl;}}}}return 0;
}
错误原因:忽略了一些值在 一个循环过后 需要重新赋值
即 代码中的 sum不能一直累加
因此修改,带注释的这行 为新加的代码
#include <iostream>
using namespace std;
int main()
{int sum = 0;
for (int i=2;i <= 1000;i++)
{sum = 0;//必须初始化为零,不然会一直累加for (int j = 1;j <i;j++){if (i %j == 0){sum += j;}}if (i==sum ){cout << i <<endl;for (int j = 1;j < i;j++){if (i % j == 0){cout << j<<endl;}}}}return 0;
}
本文发布于:2024-02-05 07:11:44,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170727078764301.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |