用C语言编程:输出2~100之间所有完数,完数是指该数各因子之和等于该数本身

   更新日期:2024.06.01

C语言程序如下:

#include <stdio.h>

int main()

long int i,j,sum;   

for(i=2;i<100;i++)

{   sum=0;

for(j=2;j<=i/2;j++)

{

if(i%j==0)

{

sum=sum+j;

}  

}

if(i==sum+1)

printf("%d
",i);

}

}

扩展资料:

如果一个数恰好等于它的因子之和,则称该数为“完全数”。

第一个完全数是6,它有约数1、2、3、6,除去它本身6外,其余3个数相加,1+2+3=6。

第二个完全数是28,它有约数1、2、4、7、14、28,除去它本身28外,其余5个数相加,1+2+4+7+14=28。

第三个完全数是496,有约数1、2、4、8、16、31、62、124、248、496,除去其本身496外,其余9个数相加,1+2+4+8+16+31+62+124+248=496。后面的完全数还有8128、33550336等等。

参考资料:百度百科-完全数



仅供参考,1000以内的:

//一个数如果恰好等于它的因子之和,这个数就称为“完数”。
//例如6的因子为1、2、3,而6=1+2+3,因此6是“完数”,
//编程找出1000以内的所有完数:

#include <stdio.h>

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++;
}
}

程序运行结果:
6
28
496

#include <stdio.h>
void main()
{
    int i,j,x,y;
    for(i=2;i<=2000;i++)
    {
     x=i;
     y=0;//将y的数值清零
     for(j=1;j<i;j++)
     { 
     if(x%j == 0)
     {
     y=y+j;
     }
     if(x==y)
     {
     if(j==(x-1))//确保除到x的上一位,避免出现还没有除到x的上一位就出现x==y的情况,如24数值。
     printf("%d
",x);
     }
     }
    }
}


#include<stdio.h>
int iswanshu(int);
int main(void){
int i;
for(i = 2; i<=100;i++){
if(iswanshu(i)){
printf("%d\n",i);
}
}
}

int iswanshu(int n){
int sum = 0;
int i;
for(i = 1;i<n;i++){
if(n % i == 0){
sum = sum +i;
}
}
if(sum == n){
return 1;
}
else
return 0;
}

  • 17187769033 :用C语言编程计算2~100之间的素数和
    项童凡1384 :答:【答案】:#include <stdio.h> int main() { int a[100],i=2,temp=0,total=0; while(i<=100) { i++; temp=i; if (i==2) { total+=i; } else { while(temp) { temp--; if (temp==1) { total+=i; break; } else if(temp!=1&&(i%temp)==0) break; } } } pr...
  • 17187769033 :用C语言编程:输出2~100之间所有完数,完数是指该数各因子之和等于该数...
    项童凡1384 :答:C语言程序如下:include <stdio.h> int main(){ long int i,j,sum;for(i=2;i<100;i++){ sum=0;for(j=2;j<=i/2;j++){ if(i%j==0){ sum=sum+j;} } if(i==sum+1)printf("%d\n",i);} }
  • 17187769033 :用C语言把2-100之内的素数放到数组里,并且输出来。
    项童凡1384 :答:if(a[i]==0)printf("%d ",i);} return 0;} 输出100以内的素数,思路:假如自然数N不是素数,则除1和其本身之外,必然至少存在两个数A和B,使得A*B=N,则A和B中必有一个大于或者等于sqrt(N),另一个小于或者等于sqrt(N)。下面是粗略证明如果N是合数,则必有一个小于或者等于根号N的素因...
  • 17187769033 :用C语言输出100之间的所有质数
    项童凡1384 :答:1、首先新建一个空白的c语言文件,引入头文件,头文件中包括math库,稍后会用到,建立主函数:2、主函数上面新建一个判断素数的函数isPrime,判断依据是小于从2到算数平方根的数即是素数。然后在主函数中遍历2到100的数,调用isPrime判断满足素数条件就输出:3、写完代码最后打开编译后的调试窗口,屏幕就...
  • 17187769033 :C语言编程求出2~100之间所有的素数以及这些素数之和
    项童凡1384 :答:i;for(i = 2; i < a; i++)if(a % i == 0)break;if(a == i)return 1;elsereturn 0;}int main(void){int i;int sum = 0;for(i = 2; i < 100; i++){if(isprime(i)){printf("%d ",i);sum = sum + i;}}printf("\nsum = %d\n",sum);printf("\n");} ...
  • 17187769033 :C语言1到100偶数之和的编程怎么写呢?
    项童凡1384 :答:C语言求1到100偶数之和编程如下:include<stdio.h> main(){ int i,sum=0;for(i=0;i<=100;i=i+2){ sum=sum+i;} printf("%d",sum);} C语言特有特点:C语言是普适性最强的一种计算机程序编辑语言,它不仅可以发挥出高级编程语言的功用,还具有汇编语言的优点,因此相对于其它编程语言,它...
  • 17187769033 :用c语言编写100个数字输出
    项童凡1384 :答:假设要输出100个数字:include<stdio.h> int main(){ int n=100;int i;for(i = 1; i <= n; i ++){ printf("%d ", i);if(i%5==0) printf("\n");} return 0;}
  • 17187769033 :用C语言编程输出1-100的整数间十位数和个位数之和不等于3的数,怎么写...
    项童凡1384 :答:代码文本:include "stdio.h"int main(int argc,char *argv[]){ int n,k;for(k=0,n=1;n<22;n++)if(n%10+n/10!=3)printf(++k%10 ? "%4d" : "%4d\n",n);while(n<=100)printf(++k%10 ? "%4d" : "%4d\n",n++);putchar('\n');return 0;} ...
  • 17187769033 :用C语言编程计算2~100之间的素数和
    项童凡1384 :答:int sushu[98];//开辟个最大容量的,假设都是素数 /*从2开始,是素数就放入数组,然后用后面的数去除以这个数组的所有元素,都不能能整除就是素数 最后求和的时候把2去掉*/ int findsushu(){ int num = 1,n=0;sushu[0] = 2;for(int i=3;i<=100;i++){ n = 0;for(int j=0;j<...
  • 17187769033 :用C语言编一个程序,输出1—200之间不能被2和3和4整除的数,要求一行输出...
    项童凡1384 :答:main(){ int i;for (i=1;i<=100;i++) if (i%2 && i%3 && i%4) printf("%d\t",i);} 以上程序实现每行10个的办法是通过\t,无需其它任何代码,输出的结果自然每行10个,并且左边对齐。
  • 相关链接

    欢迎反馈与建议,请联系电邮
    2024 © 视觉网