编写一个判断素数的函数,在主函数中输入需要判定的整数的范围,而后输出该范围内的所有素数C++
时间: 2024-03-24 12:39:23 浏览: 70
好的,下面是代码实现:
```c++
#include <iostream>
#include <cmath>
using namespace std;
bool isPrime(int n) {
if (n <= 1) return false;
int sqr = sqrt(n);
for (int i = 2; i <= sqr; i++) {
if (n % i == 0) return false;
}
return true;
}
int main() {
int start, end;
cout << "请输入需要判定的整数范围的起始值和结束值:" << endl;
cin >> start >> end;
cout << "该范围内的所有素数为:" << endl;
for (int i = start; i <= end; i++) {
if (isPrime(i)) cout << i << " ";
}
return 0;
}
```
该程序中,`isPrime` 函数用于判断一个整数是否为素数,算法较为简单,即对每个小于等于该数平方根的正整数进行整除判断,如果整除则不是素数,否则是素数。主函数中,先输入需要判断的整数范围,而后输出该范围内的所有素数。
相关问题
c++编写一个函数,判定一个整数是否是素数。编写主程序,输入两个整数,输出这两个整数之间的所有素数,要求每行输出6个。
好的,以下是 CSDN 开发的ChitGPT 的回答:
可以使用以下的 C 函数来判定一个整数是否是素数:
```c
int is_prime(int num) {
if (num < 2) {
return 0;
}
if (num == 2) {
return 1;
}
if (num % 2 == 0) {
return 0;
}
for (int i = 3; i <= sqrt(num); i += 2) {
if (num % i == 0) {
return 0;
}
}
return 1;
}
```
其中,使用了以下的判定方法:
- 如果整数 num 小于 2,那么它不是素数;
- 如果整数 num 等于 2,那么它是素数;
- 如果整数 num 是偶数,那么它不是素数;
- 如果整数 num 能够被大于 2 且小于等于它平方根的奇数整除,那么它不是素数,否则它是素数。
接下来,使用以上函数编写主程序,输入两个整数,输出这两个整数之间的所有素数,每行输出 6 个,可以使用以下代码:
```c
#include <stdio.h>
#include <math.h>
int is_prime(int num);
int main() {
int start, end, cnt = 0;
printf("Please input two integers: ");
scanf("%d %d", &start, &end);
for (int i = start; i <= end; i++) {
if (!is_prime(i)) {
continue; // 不是素数,跳过
}
printf("%d ", i);
cnt++;
if (cnt == 6) { // 每行输出 6 个
printf("\n");
cnt = 0;
}
}
return 0;
}
int is_prime(int num) {
if (num < 2) {
return 0;
}
if (num == 2) {
return 1;
}
if (num % 2 == 0) {
return 0;
}
for (int i = 3; i <= sqrt(num); i += 2) {
if (num % i == 0) {
return 0;
}
}
return 1;
}
```
希望这个回答能够帮到你!
编写一个函数,判定一个整数是否是素数。编写主程序,输入两个整数,输出这两个整数之间的所有素数,要求每行输出6个。c++
语言实现:
```
#include <stdio.h>
int isPrime(int n);
void printPrimes(int start, int end);
int main()
{
int start, end;
printf("请输入起始整数:");
scanf("%d", &start);
printf("请输入终止整数:");
scanf("%d", &end);
printf("素数如下:\n");
printPrimes(start, end);
return 0;
}
int isPrime(int n)
{
if(n <= 1)
{
return 0;
}
for(int i = 2; i * i <= n; i++)
{
if(n % i == 0)
{
return 0;
}
}
return 1;
}
void printPrimes(int start, int end)
{
int count = 0;
for(int i = start; i <= end; i++)
{
if(isPrime(i))
{
printf("%d ", i);
count++;
if(count == 6)
{
printf("\n");
count = 0;
}
}
}
printf("\n");
}
```
在该程序中,我们首先用 `isPrime()` 函数判断一个数是否为素数,若是返回 1 ,否则返回 0 。然后用 `printPrimes()` 函数输出两个整数之间的所有素数,每行输出 6 个。在 `main()` 函数中,先读入用户输入的两个整数,然后调用 `printPrimes()` 函数输出给定区间内的所有素数。
该程序输出的结果为:
```
请输入起始整数:1
请输入终止整数:50
素数如下:
2 3 5 7 11 13
17 19 23 29 31 37
41 43 47
```
这是在输入 `1` 和 `50` 的情况下的输出结果,共输出了三行,每行 6 个素数。
阅读全文