编写一个名为isPrime的布尔函数,判断500以内的整数是否为素数c++
时间: 2024-12-06 08:25:39 浏览: 47
在 C++ 中,你可以编写一个名为 `isPrime` 的布尔函数来判断一个给定的整数是否为素数。素数是指只有两个正因数(1 和自身)的大于1的自然数。下面是一个简单的函数实现:
```cpp
#include <iostream>
using namespace std;
// 判断是否为素数的函数
bool isPrime(int num) {
if (num <= 1) // 1不是素数,0和负数也不考虑
return false;
for (int i = 2; i * i <= num; ++i) { // 只需检查到根号n即可
if (num % i == 0) // 如果能被整除,则不是素数
return false;
}
return true; // 否则,它是素数
}
int main() {
for (int i = 2; i <= 500; ++i) {
if (isPrime(i))
cout << i << " 是素数" << endl;
else
cout << i << " 不是素数" << endl;
}
return 0;
}
```
相关问题
用C++编写出判断一个整数是否为素数的函数,并求出在2000以内的有十个以上的所有连续的非素数组。
在C++中,可以编写一个函数来检查一个整数是否为素数。首先,我们需要一个名为`isPrime`的函数,它接收一个整数作为输入并返回一个布尔值表示该数字是否为素数。然后,我们可以在主程序中遍历2到2000之间的数字,找到那些不是素数且相连的序列大于10。
下面是一个简单的示例:
```cpp
#include <iostream>
#include <vector>
// 判断一个数是否为素数的辅助函数
bool isPrime(int num) {
if (num <= 1) return false;
for (int i = 2; i * i <= num; ++i) {
if (num % i == 0) return false;
}
return true;
}
// 找出2000以内的连续非素数组
std::vector<std::pair<int, int>> findNonPrimeSequences() {
std::vector<std::pair<int, int>> sequences;
for (int i = 2; i <= 2000; ++i) {
// 如果i不是素数并且其后的一个数也不是素数
if (!isPrime(i) && !isPrime(i + 1)) {
int count = 2; // 初始化连续序列长度为2
int start = i;
// 检查序列长度是否超过10
while (count < 10 && i + count <= 2000 && !isPrime(i + count)) {
++count;
}
// 如果找到了长度超过10的连续非素数序列
if (count >= 10) {
sequences.push_back({start, start + count - 1});
}
}
}
return sequences;
}
int main() {
std::vector<std::pair<int, int>> nonPrimeSequences = findNonPrimeSequences();
for (const auto& seq : nonPrimeSequences) {
std::cout << "连续非素数组: [" << seq.first << ", " << seq.second << "]" << std::endl;
}
return 0;
}
```
编写一个判断某整数是否为素数的函数isPrime,然后main主程序实现输出640~1000以内所有素数的功能,要求一行显示5个数,每个数占4列显示。
以下是代码实现:
```c++
#include <iostream>
#include <iomanip> //用于控制输出格式
using namespace std;
bool isPrime(int num) { // 判断素数函数,返回值为布尔类型
if (num <= 1) { // 小于等于1的数不是素数
return false;
}
for (int i = 2; i * i <= num; i++) { // 从2到num的平方根遍历,判断是否有因子
if (num % i == 0) {
return false;
}
}
return true; // 循环结束,说明num是素数
}
int main() {
int count = 0; // 记录每行已经输出了几个数
for (int i = 640; i <= 1000; i++) { // 遍历640~1000之间的整数
if (isPrime(i)) { // 如果是素数
cout << setw(4) << i; // 控制输出格式,占4列显示
count++; // 输出的数目+1
if (count % 5 == 0) { // 如果已经输出了5个数,换行
cout << endl;
}
}
}
return 0;
}
```
输出结果:
```
641 643 647 653 659
661 673 677 683 691
701 709 719 727 733
739 743 751 757 761
769 773 787 797 809
811 821 823 827 829
839 853 857 859 863
877 881 883 887 907
911 919 929 937 941
947 953 967 971 977
983 991 997
```
阅读全文
相关推荐
















