8.*(編程)輸出n以內的素數


題目:輸入一個整數n,輸出0~n之間的所以素數(每個占一行)

解題思路:會用到取余符號%,以為我們要用余數來作判斷!

      假如i是素數,則i不能整除2~i之間的所有數,定義一個變量j,取 2~i之間所有值。如果中間的數都不能除盡,

那么一起循環到最后一次j變成i時,i%j==i%i==0 這個時候i==j ,i就一定是素數。如果在j=0~i的循環中途

就出現i%j==0,說明i一定不是素數.

 

 1 #include <stdio.h>
 2 int main()
 3 {
 4     int N,i,j;
 5     scanf("%d",&N);
 6     for(i=2; i<=N; i++)         //遍歷2~N之間的所有數 
 7     {
 8         for(j=2; j<=i; j++)  //j相當於0~i之間的所有數,i%如果除0~i之間的所有數都都不能除盡,那么i是素數。 
 9         {                    //i%j==0說明i能整除j  當i和j相等時,那么i%j必須為0 
10             if(i%j==0&&i!=j) //如果j不是在最后一個i=j的情況下i%j==0,說明在j在取0~i的某個值時,i能將其整除,因此i肯定不是素數。  
11                 break;
12             if(i%j==0&&i==j) //說明i%(0~i之間)都不能除盡,只有最后i==j的情況下才能除盡,此時已經把所有數都判斷完了,i是素數 
13                 printf("%d\n",i);
14         }
15     }
16     return 0;
17 }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM