信息学奥赛一本通T1150:函数 求正整数2和n之间的完全数

【题目描述】求正整数2和n之间的完全数(一行一个数)。完全数:因子之和等于它本身的自然数,如6=1+2+3【输入】输入n。【输出】一行一个数,按由小到大的顺序。【输入样例】7【输出样例】6【源程序】

信息学奥赛一本通T1150:求正整数2和n之间的完全数

【题目描述】

求正整数2和n之间的完全数(一行一个数)。

完全数:因子之和等于它本身的自然数,如6=1+2+3

【输入】

输入n。

【输出】

一行一个数,按由小到大的顺序。

【输入样例】

7

【输出样例】

6

【源程序】

#include<iostream>
using namespace std;
int judge(int x);
int main()
{
    int n;
    int i;

    cin>>n;
    for(i=2; i<=n; i++)
        if(judge(i)==i)//judge(i)为i的因子之和,judge(i)若与i相等,满足条件,输出
            cout<<i<<endl;
    return 0;
}
int judge(int x)
{
    int i;
    int sum=0;
    for(i=1; i<=x-1; i++) //枚举1到x中,判断是否为x的因子
        if(x%i==0)//若是x的因子,累加
            sum+=i;
    return sum;
}

信息学奥赛一本通T1150:函数 求正整数2和n之间的完全数 归属于 函数,更多同类题解源程序见:函数 和 求正整数2和n之间的完全数

0 条评论

请先 登录 后评论
不写代码的码农
轩爸

0 篇文章

作家榜 »

  1. admin 2 文章
  2. 张芳 0 文章
  3. hanna 0 文章
  4. Jason 0 文章
  5. lixiaioqian 0 文章
  6. GeraldWrora 0 文章
  7. 董伟 0 文章
  8. 信奥达人 0 文章