zoukankan      html  css  js  c++  java
  • 完数(循环)

    【问题描述】
    一个数如果恰好等于它的因子之和,这个数就成为“完数”。
    例如,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;
    }
    
  • 相关阅读:
    找细胞(题解)
    关于dfs
    奇怪的电梯(题解)
    信息解码(Message Decoding ACM/ICPC 1991)
    查找最大元素
    8皇后问题(dfs)
    如何利用dfs遍历树
    dfs(计算细胞数量)
    决策树减支问题(优化)dfs减支问题
    组合数问题
  • 原文地址:https://www.cnblogs.com/yuzilan/p/10626139.html
Copyright © 2011-2022 走看看