C++中區間內質數計數


給定範圍變數START和END。目標是在範圍[START,END]內找到質數的數量。

我們將檢查範圍內的數字i是否為質數,方法是檢查除1以外的任何數字是否完全整除它,並且該數字在1和i/2之間。如果是質數,則遞增計數。

讓我們透過例子來理解。

輸入

Start=1 End=20

輸出

Primes in Ranges : 8

解釋

Primes between 1 and 20 are: 2,3,5,7,11,13,17,19.

輸入

Start=100 End=200

輸出

Primes in Ranges : 21

解釋

Primes between 100 and 200 are: 101 103 107 109 113 127 131 137 139 149 151 157 163 167 173 179 181 191 193 197 199

下面程式中使用的方法如下

  • 我們將範圍變數作為START和END。

  • 函式countPrimes(int strt,int end)返回範圍內質數的計數。

  • 將初始變數count設為0。

  • 使用for迴圈從i=strt遍歷到i <=end

  • 取每個數字i並使用isprime(i)檢查它是否為質數。

  • 函式isprime(int num)如果數字是非質數則返回0,如果它是質數則返回1。

  • 迴圈結束後,返回count作為結果。

示例

線上演示

#include <bits/stdc++.h>
using namespace std;
int isprime(int num){
   if (num <= 1)
      return 0;
   for (int i = 2; i <= num/2; i++){
      if (num % i == 0)
         { return 0; }
   }
   return 1; //if both failed then num is prime
}
int countPrimes(int strt,int end){
   int count=0;
   for(int i=strt;i<=end;i++){
      if(isprime(i)==1)
         { count++; }
   }
   return count;
}
int main(){
   int START=10, END=20;
   cout <<endl<<"Primes in Ranges : "<<countPrimes(START,END);
   return 0;
}

輸出

如果我們執行上面的程式碼,它將生成以下輸出:

Primes in Ranges : 4

更新於:2020年10月31日

8K+ 次瀏覽

啟動您的職業生涯

透過完成課程獲得認證

開始學習
廣告
© . All rights reserved.