质数(prime number)又称素数,有无限个。一个大于1的自然数,如果除了1和它自身外,不能被其他自然数整除(除0以外)的数称之为素数(质数);否则称为合数。根据算术基本定理,每一个比1大的整数,要么本身是一个质数,要么可以写成一系列质数的乘积;而且如果不考虑这些质数在乘积中的顺序,那么写出来的形式是唯一的。
在自然数域内,质数是不可再分的数,是组成一切自然数的基本元素。 比如,10 是由两个 2 和两个 3 组成的,正如水分子是由两个 H 原子和一个 O 原子组成的一样。只是和化学世界不同,质数有无穷多个,因此算术世界的元素也就有无穷多个。算术世界内的一切对象、定理和方法,都是由其基本元素质数组成的。
那么如何求出一个质数呢?
程序代码如下:
-
#include <stdio.h>
-
-
int main()
-
{
-
int i = 2,j = 2,cout = 0;
-
-
for (i = 2; i <= 100; i++)
-
{
-
//此循环退出有两种情况
-
//1.若一个数能被i整出,则这个数肯定不是质数,退出内层循环,
-
//此时很显然i的值和j的值不相等,所以if的命令不会被执行
-
-
//2.在j<i的范围内,i%j的值都不等于0,直到j=i时,退出循环
-
//此时的i便是质数。
-
-
-
//3.举例说明,如果此时i=7,i%2,3,4,5,6的值都不等于0,7%6之后
-
//执行j++,此时j=7,再判断条件,不成立,退出内层循环。接着
-
//执行下面的if语句,此时i==j成立,所以此时j是一个质数
-
-
//总结:由j<i不成立退出的j是质数,否则不是质数;
-
for(j = 2; j < i; j++)
-
{
-
if(i % j == 0)
-
{
-
break;
-
}
-
}
-
-
if(j == i)
-
{
-
printf("%-5d",i);
-
-
/**To setup 5 num in a line**/
-
cout ++;
-
-
if(cout % 5 == 0)
-
{
-
putchar('\n');
-
}
-
-
}
-
-
-
putchar('\n');
-
-
-
return 0;
-
}
执行结果如下:
-
litong@ltubuntu:~/studyc/c05$ ./a.out
-
2 3 5 7 11
-
13 17 19 23 29
-
31 37 41 43 47
-
53 59 61 67 71
-
73 79 83 89 97
阅读(931) | 评论(0) | 转发(0) |