打表代码出现!
查看原帖
打表代码出现!
577302
Martin8521楼主2022/1/2 10:44

打表代码如下!(配合Freopen食用更佳)

// P1217
#include <iostream>
using namespace std;

bool prime(long long a){
    if ((a % 2 != 0 && a != 1) || a == 2){
        for (int i = 3;i <= a / 2;i++){
            if (a % i == 0){
                return false;
            }
        }
        return true;
    }
    return false;
}

int main(){
    //一位
    cout << 5 << '\n' << 7 << endl;

    //两位
    cout << 11 << endl;

    //三位
    for (int d1 = 1; d1 <= 9; d1 += 2) {
        for (int d2 = 0; d2 <= 9; d2++) {
            if (prime(100 * d1 + 10 * d2 + d1)){
                cout << 100 * d1 + 10 * d2 + d1 << endl;
            }
        }
    }

    //五位
    for (int d1 = 1; d1 <= 9; d1+=2) {
        for (int d2 = 0; d2 <= 9; d2++) {
            for (int d3 = 0; d3 <= 9; d3++) {
                if (prime(10000 * d1 + 1000 * d2 +100 * d3 + 10 * d2 + d1)){
                    cout << 10000 * d1 + 1000 * d2 +100 * d3 + 10 * d2 + d1 << endl;
                }
            }
        }
    }

    //七位
    for (int d1 = 1; d1 <= 9; d1+=2) {
        for (int d2 = 0; d2 <= 9; d2++) {
            for (int d3 = 0; d3 <= 9; d3++) {
                for (int d4 = 0; d4 <= 9; d4++) {
                    if (prime(1000000 * d1 + 100000 * d2 + 10000 * d3 + 1000 * d4 + 100 * d3 + 10 * d2 + d1)){
                        cout << 1000000 * d1 + 100000 * d2 + 10000 * d3 + 1000 * d4 + 100 * d3 + 10 * d2 + d1 << endl;
                    }
                }
            }
        }
    }

    //八位
    for (int d1 = 1; d1 <= 9; d1+=2) {
        for (int d2 = 0; d2 <= 9; d2++) {
            for (int d3 = 0; d3 <= 9; d3++) {
                for (int d4 = 0; d4 <= 9; d4++) {
                    if (prime(10000000 * d1 + 1000000 * d2 + 100000 * d3 + 10000 * d4 + 1000 * d4 + 100 * d3 + 10 * d2 + d1)){
                        cout << 10000000 * d1 + 1000000 * d2 + 100000 * d3 + 10000 * d4 + 1000 * d4 + 100 * d3 + 10 * d2 + d1 << endl;
                    }
                }
            }
        }
    }

    // //九位
    // for (int d1 = 1; d1 <= 9; d1+=2) {
    //     for (int d2 = 0; d2 <= 9; d2++) {
    //         for (int d3 = 0; d3 <= 9; d3++) {
    //             for (int d4 = 0; d4 <= 9; d4++) {
    //                 for (int d5 = 0;d5 <= 9;d5++){ 
    //                     if (prime(10000000 * d1 + 1000000 * d2 + 100000 * d3 + 10000 * d4 + 1000 * d5 + 100 * d3 + 10 * d2 + d1)){
    //                         cout << 10000000 * d1 + 1000000 * d2 + 100000 * d3 + 10000 * d4 + 1000 * d5 + 100 * d3 + 10 * d2 + d1 << endl;
    //                     }
    //                 }
    //             }
    //         }
    //     }
    // }
}

不小心把九位的写出来了。。。

2022/1/2 10:44
加载中...