21xrx.com
2025-04-16 15:24:36 Wednesday
文章检索 我的文章 写文章
C++求解1000以内的素数
2023-07-07 22:32:38 深夜i     37     0
C++ 求解 1000 素数

素数是指大于1且只能被1和本身整除的整数。在计算机科学中,如何求解素数一直是一个经典问题。本文将介绍如何使用C++语言求解1000以内的素数。

首先,可以使用质数判定法来判断一个数是否为素数。具体实现如下:

bool isPrime(int n) {
  if (n < 2)
    return false;
  
  for (int i = 2; i <= sqrt(n); i++) {
    if (n % i == 0)
      return false;
    
  }
  return true;
}

其中,需要判断n是否小于2,如果小于2,则直接返回false。接着,从2循环到n的平方根,如果存在n的因数,则返回false,否则返回true。

接着,可以使用一个循环来遍历1000以内的整数,并调用isPrime函数来判断是否为素数。具体实现如下:

for (int i = 2; i <= 1000; i++) {
  if (isPrime(i)) {
    printf("%d ", i);
  }
}

从2开始循环到1000,如果当前这个数是素数,则打印出来。

完整代码如下:

#include <stdio.h>
#include <math.h>
bool isPrime(int n) {
  if (n < 2)
    return false;
  
  for (int i = 2; i <= sqrt(n); i++) {
    if (n % i == 0)
      return false;
    
  }
  return true;
}
int main() {
  for (int i = 2; i <= 1000; i++) {
    if (isPrime(i)) {
      printf("%d ", i);
    }
  }
  return 0;
}

运行该程序,可得到1000以内的素数列表。

C++语言求解素数问题可以说是变化多端,还可以使用更高效的算法,但是上述代码足以解决1000以内的素数问题。同学们可以试着将代码改造一下,提高程序的效率。

  
  

评论区

请求出错了