21xrx.com
2025-03-26 13:37:43 Wednesday
文章检索 我的文章 写文章
C++输入范围找素数,计算素数和
2023-06-25 19:13:45 深夜i     16     0
C++ 输入范围 素数 计算 素数和

素数是指除了1和本身外没有其他因子的整数。在计算机科学中,如何找出素数一直是一个重要的课题。本篇文章将介绍如何使用C++编程,来输入一个范围,找出该范围内的所有素数并计算其总和。

首先,我们来介绍如何判断一个数是否为素数。一个数n是否为素数,只需从2至n-1尝试将n除尽即可。如果存在一个因子可以整除n,则n不是素数;反之,如果所有的因子都无法整除n,那么n就是素数。下面是相应的C++代码实现:

bool is_prime(int n) {  // 判断n是否为素数
  if (n == 1) return false// 特殊处理1
  for (int i = 2; i < n; i++) {
    if (n % i == 0) return false;
  }
  return true;
}

接下来,我们来编写输入范围、找素数和计算素数总和的C++代码。我们可以使用循环从输入范围的低端开始,逐个判断每个数是否为素数,并将素数的和累加到总和中。注意,我们还要特殊处理输入范围的边界情况。

#include <iostream>
using namespace std;
bool is_prime(int n) {
  if (n == 1) return false;
  for (int i = 2; i < n; i++) {
    if (n % i == 0) return false;
  }
  return true;
}
int main() {
  int lower, upper, sum = 0;
  cout << "请输入范围的下限和上限(用空格分隔):";
  cin >> lower >> upper;
  if (lower > upper)
    int tmp = lower;
    lower = upper;
    upper = tmp;
  
  for (int i = lower; i <= upper; i++) {
    if (is_prime(i)) {
      cout << i << " ";
      sum += i;
    }
  }
  cout << endl << "素数总和为:" << sum << endl;
  return 0;
}

以上就是使用C++输入范围找素数,并计算素数总和的方法。读者可以将此程序作为C++语法和算法的练习,也可以尝试优化算法以加快计算速度。

  
  

评论区

请求出错了