C語言 | 判斷是否為素數


例16:C語言實現輸入一個大於3的整數n,判斷他是否為素數(質數)。
解題思路:本題采用的算法是,讓n被i除,如果number能被2~(number-1)之中的任何一個整數整除,則表示number肯定不是素數,不必再繼續被后面的整數除,因此,可以提前結束循環。
源代碼演示:

#include<stdio.h>//頭文件 
int main()//主函數 
{
  int number,i;//定義變量 
  printf("請隨機輸入一個數:");//提示語句 
  scanf("%d",&number);//鍵盤輸入需要判斷的數 
  for(i=2;i<=number-1;i++)//循環從2開始,到這個數的掐前一個數為止 
  {
    if(number%i==0)//如果取余結果為0 
    break;
  } 
  if(i<number)
  {
    printf("%d不是素數",number);
  } 
  else
  {
    printf("%d是素數",number);
  } 
  return 0; //函數返回值為0 
}

編譯運行結果如下:

請隨機輸入一個數:56
56不是素數
--------------------------------
Process exited after 4.465 seconds with return value 0
請按任意鍵繼續. . .

讀者需要知道什么是素數,素數一般指質數,是指在大於1的自然數中,除了1和它本身以外不再有其他因數的自然數。


此題的關鍵是看結束循環時i的值是否小於number,如果number能被2~(number-1)之間的一個整數整除,則必然是由break語句導致循環提前結束,即i並未達到number的值時,循環就終止了。

C語言學習路線   

C語言開發工具

C語言 | 判斷是否為素數


免責聲明!

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



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