編程成長日記——求素數

  人生總是需要一個契機纔會去改變,其實與其說是契機,也不過是自己再給自己一次機會而已。

  重拾C語言,我決定再給自己一次機會,不知道多年以後的我再次翻看這篇博客的時候會是怎樣的心情,會不會記得當下身爲大三狗的我終於想要告別一事無成,一無所獲,一敗塗地的頹廢而不自知的大學生活,我不想說是爲了理想而奮鬥,更不是爲了中華崛起,只是爲了我自己,僅此而已。

  感謝比特,給我一次改變的機會。

  從零開始學起C語言。


--------------------------------------煽情分割線-------------------------------------------


求素數代碼

#include<stdio.h>
//求100~200之間的素數 
int main() 
{ 

 int i=0;
 int j=0;
 for (i=100;i<200;i++) 
 {
   for(j=2;j<=(i/2);j++) 
   {
     if(i%j==0) 
     break; 
   } 
   if(i%j!=0) 
   printf("是素數的數有:%d \n",i);
   
 }
  
  return 0;

}

這是我自己最開始寫的代碼,經過老師講解,發現它其實還可以進行優化:

#include<stdio.h>
//求100~200之間的素數 
int main() 
{ 

 int i=0;
 int j=0;
 for (i=101;i<200;i+=2) //除去偶數,減少循環次數 
 {
   for(j=3;j<=(i/2);j+=2) 
   {
     if(i%j==0) 
     break; 
   } 
   if(i%j!=0) 
   printf("是素數的數有:%d \n",i);
   
 }
  
  return 0;

}

在此,還需要注意的地方還有:

求大於2的素數的方法不僅僅只有n/2,還可以是n-1;或者是sqrt(n);

P.S:在使用sqrt時切記要在頭文件中加上#include<math.h>


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章