21xrx.com
2024-11-05 18:43:43 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

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

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复