21xrx.com
2024-11-05 19:39:03 Tuesday
登录
文章检索 我的文章 写文章
C++输入范围找素数,计算素数和
2023-06-25 19:13:45 深夜i     --     --
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++语法和算法的练习,也可以尝试优化算法以加快计算速度。

  
  

评论区

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