用C语言编写一个程序,输入任意一个正整数n,输出P({1,2,...,n})的所有子

用C语言编写一个程序,输入任意一个正整数n,输出P({1,2,...,n})的所有子集。

C语言实现如下:

#include<stdio.h>
void main()
{
int i,j,k,n;
scanf("%d",&n); //输入一个正整数n
for(i=2;i<=n;i++)
{
k=0;
for(j=1;j<=i-1;j++)
if(i%j==0) k+=j;
if(k==i) printf("%d\n",i);
//判断i的所有真因子之和是否等于i,是则输出i。
}
}
注意:建议n的取值小于10000,否则程序运行的时间将比较长。
知识扩展:完数,一般指完全数,一个自然数如果它的所有真因子(即除了自身以外的约数)的和等于该数,那么这个数就是完全数,如:6的真因子有1 、2、3,6=1+2+3,所以6是一个完全数。
温馨提示:答案为网友推荐,仅供参考
相似回答