蓝蓝计算机考研算法-day01判断素数和计算完全数

139 阅读1分钟

从键盘输入一个整数,判断该数是否为素数(质数)。素数是指再大于1的自然数中,除了1和它本身以外不再有其他因数的自然数。

#include<stdio.h> int main(){ //判断是否为素数 int x,i; scanf("%d", &x); for(i=2;i<x;i++){ if(x%i == 0){ break; } } if(i<x)printf("%d不是素数",x); if(i == x) printf("%d是素数",x); return 0; }

image.png

求解从2到20000的所有完全数,完全数是指它所有的真因子(即除了自身以外的约数)的和(即因子函数),恰好等于它本身。 例如:28,它有约数1、2、4、7、14、28,除去它本身28外,其余5个数相加,1+2+4+7+14=28。

#include<stdio.h> int main(){ int i,j; int sum=0; for(i=2;i<=20000;){ for(j=1;j<i;j++){ if(i%j==0) sum=sum+j; } if(sum==i){ printf("%d是完全数\n",i); sum=0; } else sum=0; i++; } return 0; }

image.png