21xrx.com
2024-11-22 02:32:42 Friday
登录
文章检索 我的文章 写文章
"C++编写判断素数的函数并输入主函数"
2023-07-08 11:54:28 深夜i     --     --
C++ 素数 函数 判断 主函数

C++编写判断素数的函数并输入主函数

在C++编程中,判断一个数是否为素数是经常用到的操作。下面我们将学习如何编写一个判断素数的函数,同时输入一个主函数来测试这个函数是否能够正确运行。

首先,要理解什么是素数。素数,也就是质数,是指只能被1和本身整除的正整数。如2、3、5、7等都是素数,而4、6、8等就不是素数。接下来,我们通过代码实现判断素数的函数。

判断素数的函数有很多种实现方式,下面我们来介绍两种。

第一种方法是通过取余运算判断是否为素数。具体实现方式如下:


bool IsPrime(int n)

{

  if (n <= 1) // 如果小于等于1则不是素数

  

    return false;

  

  for (int i = 2; i <= sqrt(n); i++) // 判断n是否能被2到sqrt(n)之间的整数整除

  {

    if (n % i == 0) // 如果能,则不是素数

    

      return false;

    

  }

  return true; // 其他情况都是素数

}

其中,sqrt()表示求平方根的函数。该函数首先判断n是否小于等于1,如果是则不是素数,直接返回false。如果不是,就从2开始遍历到sqrt(n),判断n是否能被2到sqrt(n)之间的整数整除,如果能,则不是素数,直接返回false,否则就是素数,返回true。

第二种方法是通过判断n是否为偶数和是否能被3、5、7整除来判断是否为素数。具体实现方式如下:


bool IsPrime(int n)

{

  if (n <= 1) // 如果小于等于1则不是素数

  

    return false;

  

  if (n == 2 || n == 3 || n == 5 || n == 7) // 2、3、5、7都是素数

  

    return true;

  

  if (n % 2 == 0 || n % 3 == 0 || n % 5 == 0 || n % 7 == 0) // 如果是偶数或被2、3、5、7整除,则不是素数

  

    return false;

  

  return true; // 其他情况都是素数

}

该函数首先判断n是否小于等于1,如果是则不是素数,直接返回false。如果n是2、3、5、7中的一个,则直接返回true,因为这4个数都是素数。如果n不是2、3、5、7,则判断n是否为偶数和是否能被2、3、5、7之一整除,如果能,则不是素数,返回false,否则就是素数,返回true。

为了测试上述两种函数的正确性,下面我们输入一个主函数。


#include <iostream>

using namespace std;

bool IsPrime(int n); // 声明一个判断素数的函数

int main()

{

  int n; // 输入一个正整数

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

  cin >> n;

  if (IsPrime(n)) // 判断是否为素数

  

    cout << n << "是素数。" << endl;

  

  else

  

    cout << n << "不是素数。" << endl;

  

  return 0;

}

在主函数中,输入一个正整数并调用判断素数的函数,如果该数是素数,则输出“是素数”,否则输出“不是素数”。

综上所述,我们可以通过编写一个判断素数的函数和一个主函数,快速、准确地判断一个数是否为素数。

  
  

评论区

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