...条件:该数等于它所有因子之和。如:6=1+2+3,28=1+2+4
发布网友
发布时间:2024-10-23 10:00
我来回答
共4个回答
热心网友
时间:2024-10-25 18:26
一个数,如果恰好等于它的因子之和,这个数就称为“完数”。
例如 6 的因子为 1、2、3,而 6 = 1 + 2 + 3,因此 6 就是“完数”。
用 C 语言编程求完数,还是很容易的。
可见:http://zhidao.baidu.com/question/420702519.html
//编程找出1000以内的所有完数:
#include
void main()
{
int x, i, sum;
x = 1;
while(x <= 1000) { //x要从1到1000循环.
sum = 0; //每算一个新的x时,sum要清0
for(i = 1; i < x; i++) if(x % i == 0) sum += i; //如果i是x的因子,sum加上i
if(x == sum) printf("%d\n", x); //如果因子和等于本身.
x++;
}
}
热心网友
时间:2024-10-25 18:28
#include<stdio.h>
int main()
{
int m,n,i,flag = 0;
scanf("%d %d",&m,&n);
for(i = m; i <= n; i++)
{
int j;
int sum = 0;
for(j = 1; j < i; j++)
{
if(i % j == 0)
sum += j;
}
if(sum == i)
{
printf("%d ",i);
flag++;
}
printf("\n");
}
if(flag==0)
printf("no");
return 0;
}
修改之后的代码如上 (望赏)
热心网友
时间:2024-10-25 18:21
#包括
的main()
{
INT A,N;
(N = 1,N <= 1000,N +) {
诠释x = 0;
(= 1; <N,A + +)
{
(N%== 0)X + =;
}
如果(== X)COUT首页<<“\ N”的;
}
}
完全原创,啊,我看百度知道比这更好的,不知道若干倍的麻烦,这是我的功课,只是做了一点
热心网友
时间:2024-10-25 18:24
#include<stdio.h>main()
{
int m,n,i,j,sum,flag=0;
scanf("%d %d",&m,&n);
if(0<=m&&n<=10000&&m<=n)
{
for(i=m;i<=n;i++)
{
sum=0;
for(j=1;j<i/2+1;j++)
{
if(i%j==0) sum=sum+j;
}
if(sum==i)
{
printf("%d ",i);
flag++;
}
}}
if(flag==0) printf("no\n");
}