21xrx.com
2024-12-22 21:53:12 Sunday
登录
文章检索 我的文章 写文章
如何用C++判断一个数是质数还是合数?
2023-07-05 15:24:12 深夜i     --     --
C++ 判断 数字 质数 合数

在数学中,一个大于1的整数,如果只能被1和它本身整除,那么这个整数就被称为质数(prime number),也叫素数。而那些不能称为质数的整数,就被称为合数(composite number)。 在C++编程中,判断一个数是质数还是合数,可以使用简单的算法来实现。这里介绍一种基于试除法的判断方法。

具体方法如下:对于一个给定的正整数n,从2到n-1依次取每一个数m,判断n是否能被m整除。如果存在一个m能够被n整除,则n为合数;如果n在2~n-1的所有数中都无法整除,则n为质数。

以下是C++代码实现示例:


#include <iostream>

using namespace std;

bool isPrime(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 num;

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

  cin >> num;

  if (isPrime(num))

    cout << num << "是质数。" << endl;

   else

    cout << num << "是合数。" << endl;

  

  return 0;

}

在上面的示例代码中,isPrime函数接收一个参数n,如果n<=1,则直接返回false;否则,从2到n-1依次判断n是否能被每个数整除,如果存在一个m能够被n整除,则返回false;否则,返回true。在主函数中,先让用户输入一个正整数,然后调用isPrime函数判断该数是质数还是合数,最后输出结果。

总之,使用C++判断一个数是质数还是合数,需要使用基于试除法的算法,即从2到n-1依次判断n是否能被每个数整除,用代码实现也是比较简单的。

  
  

评论区

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