21xrx.com
2025-03-18 17:36:06 Tuesday
文章检索 我的文章 写文章
用C++计算并输出100到200所有素数
2023-07-09 01:35:59 深夜i     --     --
C++ 计算 输出 素数 100-200

素数是指在大于1的自然数中,除1和本身外无其他因数的数,例如2、3、5、7等。计算和输出100到200之间的所有素数可以通过C++语言实现,下面我们来一步步实现。

首先,定义一个函数isPrime,用于判断一个数是否为素数。代码如下:

bool isPrime(int num){
  //判断num是否为素数,如果是则返回true,否则返回false
  for(int i=2; i<=sqrt(num); i++){
    if(num % i == 0)
      return false;
  }
  return true;
}

该函数的原理是:对于一个数num,如果其存在小于等于它平方根的因数,那么它就不是素数,否则它就是素数。因此,我们在函数内部循环遍历2到sqrt(num),判断是否存在因数,如果存在,则返回false;否则返回true。

接下来,我们可以使用一个循环结构,遍历100到200之间的所有数,并调用isPrime函数进行判断。对于素数,我们将其输出到控制台。代码如下:

for(int i=100; i<=200; i++){
  if(isPrime(i))
    cout << i << " ";
}

这段代码的逻辑是:从100到200遍历每个整数i,利用isPrime函数判断i是否为素数,如果是,则输出到控制台,并在数字之间添加一个空格。

最终,我们的完整代码如下所示:

#include<iostream>
#include<cmath>
using namespace std;
bool isPrime(int num){
  //判断num是否为素数,如果是则返回true,否则返回false
  for(int i=2; i<=sqrt(num); i++){
    if(num % i == 0)
      return false;
  }
  return true;
}
int main(){
  for(int i=100; i<=200; i++){
    if(isPrime(i))
      cout << i << " ";
  }
  return 0;
}

当我们执行这段代码时,会输出100到200之间的所有素数,结果如下:

101 103 107 109 113 127 131 137 139 149 151 157 163 167 173 179 181 191 193 197 199

在实际编程中,关于素数的计算还有很多优化方式,例如埃拉托斯特尼筛法、线性筛法等,更多请自行学习研究。

  
  

评论区