完数(循环)

版权声明:本文为博主原创,未经博主允许不得转载 https://blog.csdn.net/Sherry_Yue/article/details/85486840

【问题描述】
一个数如果恰好等于它的因子之和,这个数就成为“完数”。
例如,6的因子为1、2、3,而6=1+2+3,因此6是“完数”。
编程序打印出1000之内(包括1000)所有的完数,并按如下格式输出其所有因子:
6 its factors are 1,2,3.

【输入形式】
无输入

【输出形式】
输出1000以内所有的完数及其因子,每行输出一个完数及其因子。
6 its factors are 1,2,3.

【提示】
完数不止一个哦!而且最后一个数后面的结束标点符号是英文状态的句号。

#include <iostream>
using namespace std;

int main()
{
    for( int i=6; i <= 1000 ; ++i )//对6到1000个数循环(6是第一个开始的完数)
    {
        int sum = 0;
        for( int j=1; j <= i/2; ++j )//因子只要到i/2就可以
            if( i%j == 0 ) sum += j;//完数

        if( sum == i )//有毒输出格式
        {
            cout << i << " its factors are 1";
            for( int j=2; j <= i/2; ++j )
                if( i%j == 0 ) cout << "," << j;
            cout << "." << endl;
        }
    }
    return 0;
}

猜你喜欢

转载自blog.csdn.net/Sherry_Yue/article/details/85486840