📜  C C++程序查找给定范围之间的素数(1)

📅  最后修改于: 2023-12-03 15:29:41.978000             🧑  作者: Mango

C/C++程序查找给定范围之间的素数

简介

本程序通过输入两个整数,查找这两个整数之间(包含边界)的所有素数。素数是只能被1和自身整除的数,如2、3、5、7、11等。

本程序使用C/C++语言编写。其中,C++版本使用了STL库中的vector。(代码位于附录中)

程序思路
  1. 通过输入两个整数,确定查找范围

  2. 从小到大遍历这个范围内所有的数

  3. 对于每个数判断是否为素数,若是,则加入到素数序列中

  4. 遍历结束后,输出素数序列

C语言版本
#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;
}
C++语言版
#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;
}
附录

完整代码:

C语言版本

C++版本