完數(迴圈)
阿新 • • 發佈:2019-01-04
【問題描述】
一個數如果恰好等於它的因子之和,這個數就成為“完數”。
例如,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;
}