写一个程序,从键盘输入一个任意的正整数n,能找到并输出n以内的所有完数及其因子。

一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=1+2+3

#include<stdio.h>
main()
{
int n,i,j,k=0,sum=0,a[100];
printf("请输入一个数字\n");
scanf("%d",&n);
for(i=1;i<=n;i++)
{
sum=0;
k=0;
for(j=1;j<i;j++)
{
if(i%j==0)
{
a[k++]=j;
sum+=j;
}
}
if(sum==i)
{
printf("完数是%d",j);
printf("其因子是");
while(k--)
printf("%d ",a[k]);
printf("\n");
}

}
printf("\n");
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-05-20
for(i=1;i<n;i++)
for(j=1;j<n;j++)
for(k=1;k<n;k++)
if(n==i+j+k&&n=i*j*k)
printf("%d,%d,%d\n",i,j,k);
第2个回答  2011-05-20
#include <iostream.h>
int main()
{
int number,sum=0;
cin>>number;
for(int i=1; i<=number/2; i++)
if(number % i == 0)
sum += i;
cout<<sum<<endl;
}

...输入一个正整数n,编程序输出从2到n间的所有完数。
C语言实现如下:include<stdio.h>void main(){int i,j,k,n;scanf("%d",&n); \/\/输入一个正整数nfor(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的取值...

C语言程序调试(求正整数n以内的所有完全数)
include"stdio.h"int main(){ int i,j,sum,n;printf("求正整数n以内的所有完全数");printf("\\n解:\\n请输入n:\\n");scanf("%d",&n);for(i=2;i<=n;i++){ sum=0;for(j=1;j

用c语言怎样编写n个数以内的完全数的程序
include <stdio.h> int main() { int n, i, j, sum;printf("请输入一个正整数n:");scanf("%d", &n);for (i = 1; i <= n; ++i) { sum = 0;for (j = 1; j <= i \/ 2; ++j) { if (i % j == 0) { sum += j;} } if (sum == i) { printf("%d\\n"...

C语言求n以内的全部完全数
int main(){ int n,k,i,sum;printf("请输入一个正整数\\n");scanf("%d",&n);printf("全部完全数为");for(i=1;i<=n;i++){ sum=0; \/\/添加这一行 就行了 for(k=1;k

vb中 ,从键盘上输入任一正整数n,判断该数是否是完全数。如果一个数的...
公式:如果有一个自然数n,符合(2的n次方-1)是质数,那么(2的n次方-1)*(2的n次方)/2是完全数。历史 大数学家欧几里德曾推算出完全数的获得公式:如果2^p-1质数,那么(2^p-1)X2^(p-1)便是一个完全数。例如p=2,2^p-1=3是质数,(2^p-1)X2^(p-1)=3X2=6...

编程找出1000以内所有的完数,并输出每个完数的所有因子
{ if(n%i==0)sum=sum+i;\/*把它的因数累加起来赋给sum存储起来*\/ if(sum==n)\/*因数之和等于给出的那个数n*\/ { printf(" %d its factors are",n);\/*输出n的值*\/ for(i=1;i<n;i++){ if(n%i==0) printf("%d,",i);\/*把i的值依次输出*\/ }printf("\\n");\/*输出完一列...

c语言完整的程序怎么写?
在主程序中输入一个整数n,我们需要判断这个数是否为完数。首先,我们需要了解什么是完数。完数是指一个正整数等于其因子之和(不包括自身),例如6就是一个完数,因为6的因子1、2、3之和等于6。同样地,28也是一个完数,因为28的因子1、2、4、7、14之和也等于28。要判断一个整数n是否为完数,...

由用户输入的若干正整数,求出以下数据:所有完数、完数的个数、完数...
= 0; printf("请输入整数(负数或0退出): \\n"); do { scanf("%d", &n); if(n <= 0) break; if(isPerfect(n)) ++perfects; ++numbers; } while (true); if(numbers > 0) { printf("你一共输入 %d 个数,其中 %d 个完数, 占 %lf%%\\n", ...

c语言如何实现输入一个数,输出它的因子之和?
在C语言中,你可以通过编写一个简单的程序来接收用户输入的数,并计算其因子之和。以下是一个示例代码:这个程序首先提示用户输入一个正整数。然后,它使用一个for循环从1到用户输入的数字,检查每个数是否是输入数字的因子(如果输入的数可以被这个数整除,那么这个数就是因子)。如果是因子,就把它加...

如何用C++编写程序,寻找小于一个正整数n的所有完数?
include<iostream.h> void main(){ int m,s,i;for(m=2;m<1000;m++) \/\/m是2~1000之间的整数,检查它是否完数 { s=0;for(i=1;i<m;i++)if(m%i==0)s=s+i;if(s==m){ cout<<"its factors are "<<m;for(i=1;i<m;i++)if(m%i==0)cout<<i<<endl;} } } ...

相似回答