輸出1到100之間的全部素數(shù)?
方法一:
1、遍歷1到100之間所有數(shù),由于1的特殊性,不是素數(shù)也不是合數(shù),所以可以從2開始遍歷;
2、對于每一個數(shù),判斷是否為素數(shù);
3、如果是素數(shù),則輸出,否則繼續(xù)下一個。
參考代碼:
#include <stdio.h>#include <math.h>int isPrime(int n)//判斷素數(shù)函數(shù)。{ int i; for(i = 2; i <= (int)sqrt(n); i ++)//從2到算數(shù)平方根遍歷。 if(n%i == 0) return 0;//存在約數(shù),非素數(shù),返回0. return 1;//是素數(shù),返回1.}int main(){ int i; for(i = 2; i <= 100; i ++)//遍歷。 if(isPrime(i))//是素數(shù)。 printf("%d ", i);//輸出素數(shù)。 return 0;}
方法二是輸出100個素數(shù),基本思想是構(gòu)造一個素數(shù)表,利用函數(shù)判斷每個數(shù)是否能被其之前的素數(shù)整除,如果不能,則在素數(shù)表內(nèi)加上該元素,不斷循環(huán)(while循環(huán)結(jié)束條件是cnt即數(shù)組個數(shù)>100)。