用C语言求1000以内的完数?
展开全部
完数,即完全数(Perfect number),又称完美数或完备数,是一些特殊的自然数。其所有的真因子(即除信宴了自身以外的约数)的和(即因子函数),恰好等于本身。
根据该定义 可以得出判断完数的函数如下:
#include <stdio.h>
int is_perfect_number(int n)
{
int i,s=0;
for(i = 1; i <=n/2; i ++)
if(n%i == 0) s+= i;//统计所有真因子的和。
if(s == n) return 1;//如果与原值相等,则该数为完数。
return 0;//不是完数。
}
根据该函数,只需要对需要打印的范围内1 ~1000做遍历,并逐一调用该函数判兄液断,如果返回1则打印即可。
完整代码如下:
#include <stdio.h>
int is_perfect_number(int n)
{
int i,s=0;
for(i = 1; i <=n/2; i ++)
if(n%i == 0) s+= i;//统计所有真因子的和。
if(s == n) return 1;//如果与原值相等,则该数为完数。
return 0;//不是完数。羡坦物
}
int main()
{
int n;
for(n = 1; n < 1000; n++)
if(is_perfect_number(n)) printf("%d,",n);
}
根据该定义 可以得出判断完数的函数如下:
#include <stdio.h>
int is_perfect_number(int n)
{
int i,s=0;
for(i = 1; i <=n/2; i ++)
if(n%i == 0) s+= i;//统计所有真因子的和。
if(s == n) return 1;//如果与原值相等,则该数为完数。
return 0;//不是完数。
}
根据该函数,只需要对需要打印的范围内1 ~1000做遍历,并逐一调用该函数判兄液断,如果返回1则打印即可。
完整代码如下:
#include <stdio.h>
int is_perfect_number(int n)
{
int i,s=0;
for(i = 1; i <=n/2; i ++)
if(n%i == 0) s+= i;//统计所有真因子的和。
if(s == n) return 1;//如果与原值相等,则该数为完数。
return 0;//不是完数。羡坦物
}
int main()
{
int n;
for(n = 1; n < 1000; n++)
if(is_perfect_number(n)) printf("%d,",n);
}
展开全部
完数,即完全数(Perfect
number),又称完美数或完备数,是一些特殊的自然数。其所有的真因子(即除了自身以外的约数)的和(即因子函数),恰好等于本身。
根据该定义
可以得出判断完数的函数如下:
#include
int
is_perfect_number(int
n)
{
int
i,s=0;
for(i
=
1;
i
<=n/2;
i
++)
if(n%i
==
0)
s+=
i;//统计所有真因子的和。
if(s
==
n)
return
1;//如果与原值相等,则该数为完数。
return
0;//不是完数。
}
根据该函数,只需要伍陪拍对需要打印的范围内1
~1000做遍历,并逐一调用该函数判断,如果返回1则打印即可。
完整代码如下:
#include
int
is_perfect_number(int
n)
{
int
i,s=0;
for(i
=
1;
i
<=n/2;
i
++)
if(n%i
==
0)
s+=
i;//统计所有真因腔羡子的和。
if(s
==
n)
return
1;/乱洞/如果与原值相等,则该数为完数。
return
0;//不是完数。
}
int
main()
{
int
n;
for(n
=
1;
n
<
1000;
n++)
if(is_perfect_number(n))
printf("%d,",n);
}
number),又称完美数或完备数,是一些特殊的自然数。其所有的真因子(即除了自身以外的约数)的和(即因子函数),恰好等于本身。
根据该定义
可以得出判断完数的函数如下:
#include
int
is_perfect_number(int
n)
{
int
i,s=0;
for(i
=
1;
i
<=n/2;
i
++)
if(n%i
==
0)
s+=
i;//统计所有真因子的和。
if(s
==
n)
return
1;//如果与原值相等,则该数为完数。
return
0;//不是完数。
}
根据该函数,只需要伍陪拍对需要打印的范围内1
~1000做遍历,并逐一调用该函数判断,如果返回1则打印即可。
完整代码如下:
#include
int
is_perfect_number(int
n)
{
int
i,s=0;
for(i
=
1;
i
<=n/2;
i
++)
if(n%i
==
0)
s+=
i;//统计所有真因腔羡子的和。
if(s
==
n)
return
1;/乱洞/如果与原值相等,则该数为完数。
return
0;//不是完数。
}
int
main()
{
int
n;
for(n
=
1;
n
<
1000;
n++)
if(is_perfect_number(n))
printf("%d,",n);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐于2017-09-21
展开全部
给:
#include <stdio.h>
int ws(int a,int b,int c)
{
int d;
if (a>c) {
if (a%c==0)
b+=c;
d=ws(a,b,c+1);
}
else if (c==a) {
if (b==a) {
return 1;
}
else return 0;
}
if (c==a-1&&d) {
printf("%d is Prefect number:\t"芦简,a);
}
if (d&&(a%c==0)) {
printf("%d "培灶,c);
}
else if (!d) return 0;
if (c==1)
{putchar('\n');
return d;}
}
int main(void)
{
int i;
for (i=1; i<=1000; i++)
ws(i,0,1) ;
return 0;
}
运行结果为:陪中裤
6 is Prefect number: 3 2 1
28 is Prefect number: 14 7 4 2 1
496 is Prefect number: 248 124 62 31 16 8 4 2 1
Press any key to continue
#include <stdio.h>
int ws(int a,int b,int c)
{
int d;
if (a>c) {
if (a%c==0)
b+=c;
d=ws(a,b,c+1);
}
else if (c==a) {
if (b==a) {
return 1;
}
else return 0;
}
if (c==a-1&&d) {
printf("%d is Prefect number:\t"芦简,a);
}
if (d&&(a%c==0)) {
printf("%d "培灶,c);
}
else if (!d) return 0;
if (c==1)
{putchar('\n');
return d;}
}
int main(void)
{
int i;
for (i=1; i<=1000; i++)
ws(i,0,1) ;
return 0;
}
运行结果为:陪中裤
6 is Prefect number: 3 2 1
28 is Prefect number: 14 7 4 2 1
496 is Prefect number: 248 124 62 31 16 8 4 2 1
Press any key to continue
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
6,28,496
#include<stdio.h>
void main()
{
int n,i,s;
for(n=2;n<=1000;n++)
{
s=0;
for(i=1;i<=n/谨慎游2;i++)
if(n%i==0)
s+=i;
if(s==n)
printf("%d是完数!\祥销n"孝森,n);
}
}
#include<stdio.h>
void main()
{
int n,i,s;
for(n=2;n<=1000;n++)
{
s=0;
for(i=1;i<=n/谨慎游2;i++)
if(n%i==0)
s+=i;
if(s==n)
printf("%d是完数!\祥销n"孝森,n);
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询