回覆列表
-
1 # 掉眼淚的冠軍
-
2 # 粥粥長安
方法一:
1、遍歷1到100之間所有數,由於1的特殊性,不是素數也不是合數,所以可以從2開始遍歷;
2、對於每一個數,判斷是否為素數;
3、如果是素數,則輸出,否則繼續下一個。
參考程式碼:
#include <stdio.h>#include <math.h>int isPrime(int n)//判斷素數函式。{ int i; for(i = 2; i <= (int)sqrt(n); i ++)//從2到算數平方根遍歷。 if(n%i == 0) return 0;//存在約數,非素數,返回0. return 1;//是素數,返回1.}int main(){ int i; for(i = 2; i <= 100; i ++)//遍歷。 if(isPrime(i))//是素數。 printf("%d ", i);//輸出素數。 return 0;}
方法二是輸出100個素數,基本思想是構造一個素數表,利用函式判斷每個數是否能被其之前的素數整除,如果不能,則在素數表內加上該元素,不斷迴圈(while迴圈結束條件是cnt即陣列個數>100)。
int main(){ int i, j; for (i = 2; i < 100; ++i){//2-100控制迴圈 //判斷素數 for (j = 2; j*j <= i; ++j){//2-sqrt(i)迴圈控制 if (i % j == 0)break;//如果能整除,說明不是素數,跳出迴圈 } if (j*j > i){//如果沒有能整除的數,說明是素數,輸出 printf ("%d\n", i); } } return 0;}