介绍
在本实验中,我们将学习如何在 C++ 中检查给定的数字是质数(prime)还是合数(composite)。质数是指大于 1 且只能被 1 和其自身整除的数字。合数是指大于 1 且可以被除了 1 和其自身以外的其他数字整除的数字。
在本实验中,我们将学习如何在 C++ 中检查给定的数字是质数(prime)还是合数(composite)。质数是指大于 1 且只能被 1 和其自身整除的数字。合数是指大于 1 且可以被除了 1 和其自身以外的其他数字整除的数字。
isPrime()
函数我们将定义一个函数 isPrime()
,它接收一个整数并返回一个布尔值,表示该整数是否为质数。
#include <iostream>
#include <math.h>
using namespace std;
bool isPrime(int n)
{
if (n == 1)
return false; // 1 不是质数
for (int i = 2; i <= sqrt(n); i++)
{
if (n % i == 0)
return false;
}
return true;
}
在上面的代码中,我们检查给定的数字是否能被任何数字整除。如果没有这样的数字,则该数字是质数。如果数字是 1,则它不是质数。
main()
函数现在我们将编写 main()
函数,该函数从用户那里获取输入,并使用 isPrime()
函数来判断给定的数字是质数还是合数。
int main()
{
cout << "\n\nWelcome to LabEx :-)\n\n\n";
cout << " ===== 最高效的程序,用于判断输入的数字是否为质数。 ===== \n\n";
cout << " ===== 注意:1 既不是质数也不是合数。 ===== \n\n";
int n;
bool prime = false;
cout << " 请输入一个大于 1 的正整数:";
cin >> n;
prime = isPrime(n);
if (prime)
{
cout << "\n\n输入的数字 " << n << " 是质数。";
}
else
{
cout << "\n\n输入的数字 " << n << " 是合数。";
}
cout << "\n\n\n";
return 0;
}
使用 g++
命令编译代码,如下所示:
g++ main.cpp -o main
然后使用命令 ./main
运行程序。
./main
程序会提示你输入一个大于 1 的正整数,输入数字后按回车键。
程序将输出输入的数字是质数还是合数。
main.cpp
完整代码#include <iostream>
#include <math.h>
using namespace std;
bool isPrime(int n)
{
if (n == 1)
return false; // 1 不是质数
for (int i = 2; i <= sqrt(n); i++)
{
if (n % i == 0)
return false;
}
return true;
}
int main()
{
cout << "\n\nWelcome to LabEx :-)\n\n\n";
cout << " ===== 最高效的程序,用于判断输入的数字是否为质数。 ===== \n\n";
cout << " ===== 注意:1 既不是质数也不是合数。 ===== \n\n";
int n;
bool prime = false;
cout << " 请输入一个大于 1 的正整数:";
cin >> n;
prime = isPrime(n);
if (prime)
{
cout << "\n\n输入的数字 " << n << " 是质数。";
}
else
{
cout << "\n\n输入的数字 " << n << " 是合数。";
}
cout << "\n\n\n";
return 0;
}
在本实验中,我们学习了如何在 C++ 中检查给定的数字是质数还是合数。我们使用了一个函数来判断给定的数字是否为质数,基于它是否能被除了 1 和其自身以外的其他数字整除。然后,我们在 main()
中使用了这个函数,它从用户那里获取输入,并输出该数字是质数还是合数。