素数的定义
只能被1和它本身整除的数叫素数。如2、3、5、7.
合数的定义
除了“1”和它本身以外,还能被其他数整除的数叫合数,如:4、6、8、9.
在介绍质数、合数的概念时,我们都会追加一句:“1”既不是质数也不是合数。
有人要问,“1”也只能被1 和它本身整除,为什么不能算质数呢?而且“1”算作质数后,就不用再追加这么一句,岂不是更简单吗?
这要从分解质因数谈起。比如,1001 能被哪些数整除,其实质是将1001分解质因数,由1001=7×11×13,而且只有这一种分解结果,知道1001 除了被1 和它本身整除以外,还能被7、11、13 整除。若把“1”也算作质数,那么1001 分解质因数就会出现下面一些结果:
1001=7×11×13
1001=1×7×11×13
1001=1×1×7×11×13
……
也就是说,分解式中可随便添上几个因数“1”。这样做,一方面对求1001 的因数毫无必要,另一方面分解质因质结果不唯一,又增添了不必要的麻烦。因此“1”不算作质数。
每一个整数,或者是素数,或者是素数的乘积。
编程判断一个数是否是素数
#include<stdio.h>
#include<math.h>
int main (void)
{
int i;
scanf("%d", &i);
if ( isPrime( i )){
printf("%d is prime", i );
} else {
printf("%d is not prime", i );
}
return 0;
}
int isPrime ( int i )
{
int n;
for ( n = 2; n <= (int)sqrt(i); n++ ){
if ( i % n == 0 ){
return 0;
}
}
return 1;
}