这是一个 C++ 程序,用于检查用户输入的数字是否为完全数。
如果一个数等于其正约数(不包括该数本身)之和,那么该数就可以称为完全数。例如,28 是一个完全数,因为 28 的约数是 1、2、4、7 和 14。所有这些约数之和等于该数本身。即
28 = 1+2+4+7+14
= 14+14
= 28
因此 28 是一个完全数。
要求用户输入一个数字,并将该数字读入变量 num。这里我们使用 for 循环来检查完全数。将数字存储到变量 num 后,执行 for 循环,初始化 i = 1,条件 i < num,更新 i++。在 for 循环内,使用 if 条件语句获取该数字的约数。
该数字除以 i,并检查余数是否为零,以使用取模运算符检查 i 是否为该数字的正约数。
if(num%i==0)
如果条件为真,则将最初设置为 0 的变量 sum 通过添加 i 来更新其值。i 的值在每次迭代中递增 1。该过程继续进行,直到 for 循环的条件 i < num 变为假。退出循环后,变量 sum 存储了该数字所有正约数的和。现在我们必须使用 if-else 语句将 sum 的值与该数字本身进行比较。
如果条件 num == sum 为真,则打印该数字是一个完全数,否则打印该数字不是一个完全数。
步骤 1: 调用头文件 iostream。
步骤 2: 使用 namespace std。
步骤 3: 打开主函数;int main()。
步骤 4: 声明整数类型变量 num, i 和 sum = 0;
步骤 5: 要求用户输入一个数字。
步骤 6: 获取数字到变量 num;
步骤 9: 定义一个 for 循环,i = 1,并检查条件 i < num;每次迭代将 i 的值更新 1;
在循环内,将数字除以 i 并检查余数。
如果余数为 0;则将 i 添加到 sum
步骤 10: 检查数字是否等于和,然后打印完全数
步骤 11: 否则打印不是完全数
步骤 12: 退出
#include<iostream>
using namespace std;
int main()
{
int num, i, sum=0;
cout<<"Enter a Number: ";
cin>>num;
for(i=1; i<num; i++)
{
if(num%i==0)
sum = sum+i;
}
if(num==sum)
cout<<endl<<num<<" is a Perfect Number.";
else
cout<<endl<<num<<" is not a Perfect Number.";
cout<<endl;
return 0;
}
Run 1 Enter a Number: 78 78 is not a Perfect Number. Run 2 Enter a Number: 496 496 is a Perfect Number.