c语言1000完数
『壹』 如何用c语言打印1000以内的完数
// 本程序演示一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=1+2+3.编程找出1000以内的所有完数
#include"stdio.h"
main()
{
int i,j,s,sum;
printf("完数:\n") ;
sum=0;
for(i=2;i<=1000;i++)
{ s=0; ;//此处s=0一定要加,因为前几次循环的时候s的值已经改变 。清零
for(j=1;j<i;j++)
{
if(i%j==0)//这一块是如果能够整除,那么就是该数的因子,我们累加起来
{s+=j;
}
}
if(s==i) //因子的和与原数比较,如果正确就输出
{printf("%d\n",i);
sum++;
}
}
printf("完数的个数:%d\n",sum);
}
『贰』 用C语言编写求1000内的完数。。。
你如果是想学编程,这个程序是很简单的,最好自己写写,然后自己调试一下,那样你才能进步哦。我给你贴一个代码,你自己作参考就是了哈,还有其他的写法
#include<stdio.h>
void main()
{
int n,i,a;
for(n=2;n<=1000;n++)
{
a=0;
for(i=1;i<=n/2;i++)
if(n%i==0)
a=a+i;
if(a==n)
{ printf("%-5d its factors are 1",n);
for(i=2;i<n;i++)
if(n%i==0)
printf(",%d",i);
printf("\n");
}
}
printf("\n");
}
『叁』 1000以内的完数 c语言
#include<stdio.h>
int main()
{
int a,b,c;
a=1;
while(a<1000)
{
a++;
c=0;
b=1;//当执行完下面的while(b<a)后应给b重新赋值,你原来的位置并没重新赋值
while(b<a) //我觉的改成 for(b=1;b<=a/2;b++) 循环里的b++就不要了,会更好些,b重 新 赋值 且 减 少了循环
{
if((a%b)==0) c=c+b;
b++;
}
if(c==a) printf("%d\n",a);
}
return 0;
}
『肆』 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);
}
『伍』 用c语言 输出1~1000的所有完数
# include <stdio.h>
int ws(int n)
{
int i,k,j=0;
for (i=1;i<n;i++)
{
k=n%i;
if (k==0)
j+=i;
}
if (j==n)
return 1;
else
return 0;
}
void main()
{
int i,result;
for (i=1;i<=1000;i++)
{
result=ws(i);
if (result==1)
printf("%d ",i);
}
}
『陆』 C语言,求1000内的完数并输出其因子
你的算法有问题。
大致修改后,但是还是运行会异常。
#include <stdio.h>
void main()
{
int i,t,n=0,sum=0,m=0;
int a[50]={0};// 增加={0}
for(i=2;i<=1000;i++)
{
//a[50]={0}; // 去掉
for(t=1;t<i;t++)
{
if(i%t==0)
{
a[n]=t;
n++;
sum=sum+a[n];
}
if(i==sum)
{
printf("%d\n",i);
while(a[m]!=0&&m<=50)// 修改a[m!=0&&m<=50]为a[m]!=0&&m<=50
{
printf("%d\t",a[m]);
m++;
}
}
}
}
}
修改算法后代码:
#include<stdio.h>
int main()
{
int i=1;
int sum=0;
int x=1;
for(i=1; x<=1000; ++i)
{
x *= i;
sum += i;
if(x == sum)
{
printf("%d\n",x);
}
}
return 0;
}
『柒』 C语言。编写程序求1000以内的所有完数,并显示输出。
#include<stdio.h>
voidgetPerfectNumber(intn){
intk[100],kc=0,ks=0;
for(inti=1;i<=n;i++){
for(intj=1;j<=i/2;j++){
if(i%j==0)
k[kc++]=j;
}
for(intj=0;j<kc;j++){
ks+=k[j];
k[j]=0;
}
if(ks==i)
printf("%d ",i);
kc=0;
ks=0;
}
}
intmain()
{
getPerfectNumber(1000);
return0;
}
『捌』 用C语言输出1000以内所有的完数
用C语言输出1000以内所有的完数步骤如下:
1、首先打开vc6.0,新建一个项目。
『玖』 用C语言找出1000以内的完数。
用C语言输出1000以内所有的完数步骤如下:
1、首先打开vc6.0,新建一个项目。内