本文主要是介绍求正整数2和n之间的完全数(信息学奥赛一本通-T1150),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
【题目描述】
求正整数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;
}
这篇关于求正整数2和n之间的完全数(信息学奥赛一本通-T1150)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!