21xrx.com
2024-09-20 01:10:43 Friday
登录
文章检索 我的文章 写文章
C++初学者如何统计不大于m的质数个数及总和
2023-07-09 16:45:39 深夜i     --     --
C++ 初学者 统计 质数 不大于m 个数 总和

对于C++初学者来说,统计不大于m的质数个数及总和是一个简单但又有实际应用的问题。下面我们将介绍一下如何在C++中进行这个任务。

首先,我们需要明确什么是质数。质数指的是只能被1和它本身整除的正整数,例如2、3、5、7等。因此,我们需要一个函数来检查一个数是否为质数。以下是一个检查质数的函数:

 c++

bool is_prime(int n) {

  if (n <= 1)

    return false;

  

  for (int i = 2; i * i <= n; i++) {

    if (n % i == 0)

      return false;

    

  }

  return true;

}

上面的代码中,我们首先判断n是否小于等于1,如果是的话则不是质数,直接返回false。接着,我们循环判断2到n的平方根是否可以整除n,如果可以,则说明n不是质数,返回false。如果循环结束后仍未能找到n的因子,则说明n是质数,返回true。

有了判断质数的函数,我们就可以统计不大于m的质数个数及总和了。我们可以使用循环遍历2到m之间的所有数,判断每个数是否为质数,如果是,则累加到总和中,并计数。以下是代码实现:

 c++

#include <iostream>

using namespace std;

bool is_prime(int n) {

  if (n <= 1)

    return false;

  

  for (int i = 2; i * i <= n; i++) {

    if (n % i == 0)

      return false;

    

  }

  return true;

}

int main() {

  int m, sum = 0, count = 0;

  cout << "请输入一个正整数m:";

  cin >> m;

  for (int i = 2; i <= m; i++) {

    if (is_prime(i)) {

      sum += i;

      count++;

    }

  }

  cout << "不大于" << m << "的质数个数为:" << count << endl;

  cout << "不大于" << m << "的质数总和为:" << sum << endl;

  return 0;

}

上面的程序中,我们使用一个循环遍历2到m之间的所有数,判断每个数是否为质数。如果是,则累加到总和中,并计数。循环结束后,输出结果即可。

总之,这个问题涉及到了C++中的函数、循环等基本语法,对于初学者而言是一个很好的练手题目。希望本文能够对C++初学者有所帮助。

  
  

评论区

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