📅  最后修改于: 2023-12-03 15:29:41.978000             🧑  作者: Mango
本程序通过输入两个整数,查找这两个整数之间(包含边界)的所有素数。素数是只能被1和自身整除的数,如2、3、5、7、11等。
本程序使用C/C++语言编写。其中,C++版本使用了STL库中的vector。(代码位于附录中)
通过输入两个整数,确定查找范围
从小到大遍历这个范围内所有的数
对于每个数判断是否为素数,若是,则加入到素数序列中
遍历结束后,输出素数序列
#include <stdio.h>
/* 判断一个数是否为素数 */
int isPrime(int n) {
int i;
for (i = 2; i < n; i++) {
if (n % i == 0) { /* 除了1和自身以外还能整除其他数,不是素数 */
return 0;
}
}
return 1;
}
int main() {
int start, end;
printf("请输入需要查找素数的范围(用空格隔开):");
scanf("%d %d", &start, &end);
int i;
printf("%d到%d之间的素数为:", start, end);
for (i = start; i <= end; i++) {
if (isPrime(i)) { /* 是素数则输出 */
printf("%d ", i);
}
}
printf("\n");
return 0;
}
#include <iostream>
#include <vector>
using namespace std;
/* 判断一个数是否为素数 */
bool isPrime(int n) {
int i;
for (i = 2; i < n; i++) {
if (n % i == 0) { /* 除了1和自身以外还能整除其他数,不是素数 */
return false;
}
}
return true;
}
int main() {
int start, end;
cout << "请输入需要查找素数的范围(用空格隔开):";
cin >> start >> end;
vector<int> res; /* 存储素数 */
int i;
for (i = start; i <= end; i++) {
if (isPrime(i)) { /* 是素数则加入到序列中 */
res.push_back(i);
}
}
cout << start << "到" << end << "之间的素数为:";
for (i = 0; i < res.size(); i++) {
cout << res[i] << " ";
}
cout << endl;
return 0;
}
完整代码: