21xrx.com
2024-11-22 06:47:27 Friday
登录
文章检索 我的文章 写文章
C++程序如何判断一个数是否为素数?
2023-07-04 21:16:20 深夜i     --     --
C++ 素数 判断方法

素数是指只能被1和本身整除的正整数,如2、3、5、7、11等都是素数。在C++程序中,可以通过一些简单的算法判断一个数是否为素数。

常见的判断算法是“试除法”,即用2到该数开方的范围内的所有整数去试除该数,如果该数能被其中任意一个整数整除,则该数不是素数。由于所有的偶数都能被2整除,因此只需要判断奇数的情况,可以提高程序的效率。

下面是一个使用试除法判断素数的C++程序示例:


#include <iostream>

#include <cmath>

using namespace std;

bool isPrime(int num) {

  if (num <= 1) 小于1的数也不是素数

    return false;

  

  if (num == 2)  // 2是素数

    return true;

  

  if (num % 2 == 0)  // 排除偶数

    return false;

  

  int maxDivisor = sqrt(num); // 计算该数的平方根

  for (int i = 3; i <= maxDivisor; i += 2) { // 试除

    if (num % i == 0)

      return false;

    

  }

  return true;

}

int main() {

  int num;

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

  cin >> num;

  if (isPrime(num))

    cout << num << "是素数" << endl;

   else

    cout << num << "不是素数" << endl;

  

  return 0;

}

该程序先判断输入的数是否小于等于1,如果是则直接返回false,因为1和小于1的数都不是素数;如果是2,则直接返回true,因为2是素数;如果是偶数,则直接返回false,因为偶数除了2之外都不是素数。然后通过计算该数的平方根,从3开始试除奇数,如果该数能被试除的数整除,则返回false,否则返回true。

总的来说,判断一个数是否为素数并不难,只需要用试除法试除从3到这个数的平方根范围内的所有奇数即可。

  
  
下一篇: C++入门编辑器

评论区

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