今天的问题是:判断101-200之间有多少个素数,并输出所有素数。
这也是C语言的经典问题,我们首先要知道,什么样的数是素数?在数学上的定义:大于1,除了1和它本身不能被其他数整除的数就是素数。那我们从编程角度出发,该怎么解决这个问题呢?

思考:
我们这么想:加入有一个数,我们让它除以2,看它是否除的尽,然后与3相除,看是否除的尽,一直这样,到与这个数的前一个数相除,如果都不能除的尽,是不是说明这个数就是一个素数。我们题目讲,在一个区间内,这个简单,我们只要把外层循环开始值换成区间开始值,把外层循环结束值换成区间结束值就行了。
我们首先用C语言实现:我们假设这个区间为888-999。

#include<stdio.h>
int main(){
int i,j;
for(i=888;i<=999;i++){
for(j=2;j<i;j++){
if(i%j==0){
break;
}
else{
if(j==i-1){
printf("%d\n",i);
}
}
}
}

我们首先用Python实现:我们假设这个区间为888-999。

import math h = 0 leap = 1 for m in range(888, 999): k = int(math.sqrt(m + 1)) for i in range(2, k + 1): if m % i == 0: leap = 0 break if leap == 1: print(’%-4d’ % m) h += 1 if h % 10 == 0: print(’’) leap = 1 print(’%d’ % h)
