经典算法(1)判断一个数是否为素数
质数(Prime number),又称素数,指在大于1的自然数中,除了1和该数自身外,无法被其他自然数整除的数(也可定义为只有1与该数本身两个正因数的数)。 大于1的自然数若不是质数,则称之为合数(也称为合成数)。
解法1
include <stdio.h>
main()
{int n,i;
scanf("%d",&n);
for(i=2;i<=n-1;i++)
if(n%i==0) break;
if(i>=n) printf("%d is\n",n);
else printf("%d is not\n",n);
printf("a prime number.\n");
}
运行结果:

思考:为什么要用'>=':为了后面那句更方便 T.T
解法2
include <stdio.h>
include <math.h>
main(){
int n,i,k;
scanf("%d",&n);
k=sqrt((double)n); //求根号下x,函数原型:double sqrt(double x);
for(i=2;i<=k;i++)
if(n%i==0)break;
if(i>=k+1)printf("%d is \n",n);
else printf("%d is not\n",n);
printf("a prime number.\n");
}
运行结果:

思考:为什么条件是大于k+1🤔(现在不知道,后面知道了再补)

浙公网安备 33010602011771号