今天的问题是:判断101-200之间有多少个素数,并输出所有素数。

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

python判断两个数内素数的个数(Python解答C语言经典问题)(1)

思考:

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

我们首先用C语言实现:我们假设这个区间为888-999

python判断两个数内素数的个数(Python解答C语言经典问题)(2)

#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判断两个数内素数的个数(Python解答C语言经典问题)(3)

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

python判断两个数内素数的个数(Python解答C语言经典问题)(4)

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)

python判断两个数内素数的个数(Python解答C语言经典问题)(5)

,