编辑代码

#include <iostream>
#include <string>
#include <algorithm>
#include <vector>
#include <cmath>
using namespace std;

// 判断一个数是否为素数的函数
bool isPrime(int num) {
    if (num < 2)
        return false;
    for (int i = 2; i <= sqrt(num); ++i) {
        if (num % i == 0)
            return false;
    }
    return true;
}

int main() {
    string student_number = "202312304018";
    vector<int> prime_numbers;
    // 生成不同长度的数字组合
    for (int length = 1; length <= student_number.size(); ++length) {
        string comb;
        do {
            comb = student_number.substr(0, length);
            int num = stoi(comb);
            if (isPrime(num)) {
                prime_numbers.push_back(num);
            }
        } while (next_permutation(student_number.begin(), student_number.end()));
    }
    // 去重
    sort(prime_numbers.begin(), prime_num_number.end());
    prime_numbers.erase(unique(prime_numbers.begin(), prime_numbers.end()), prime_numbers.end());
    // 输出结果
    for (int prime : prime_numbers) {
        cout << prime << " ";
    }
    cout << endl;
    return 0;
}