這也是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)
,