求助求助,急需大佬帮助

P1217 [USACO1.5] 回文质数 Prime Palindromes

chengkelin2024 @ 2024-06-14 13:00:09

#include<bits/stdc++.h>
using namespace std;
int main(){
    int sum=1000;
    int d1,d2,d3,a,b;
    cin>>a>>b;
    int i = 0;
    int palindrome[10000];
    for (d1 = 1; d1 <= 9; d1+=2) {    // 只有奇数才会是素数
     for (d2 = 0; d2 <= 9; d2++) {
         for (d3 = 0; d3 <= 9; d3++) {
           palindrome[0+i] = 10000*d1 + 1000*d2 +100*d3 + 10*d2 + d1;//(处理回文数...)
           i++;
           sum++;
         }
     }
 }
    cin>>a>>b;
    for(int i=1;i<=sum;i++){
    if(palindrome[i]>=a&&palindrome[i]<=b){
    cout<<palindrome[i];
    }
}
    return 0;
}

哪里错了谢谢


by chengkelin2024 @ 2024-06-14 13:27:46

@mc_xiexie ???


by mc_xiexie @ 2024-06-14 13:30:34

@chengkelin2024

要判质数


by chengkelin2024 @ 2024-06-14 13:32:01

#include<bits/stdc++.h>
using namespace std;
int main(){
    int sum=0;
    int d1,d2,d3,a,b;
    cin>>a>>b;
    int i = 0;
    int palindrome[10000];
    for (d1 = 1; d1 <= 9; d1+=2) {    // 只有奇数才会是素数
        for (d2 = 0; d2 <= 9; d2++) {
            for (d3 = 0; d3 <= 9; d3++) {
                palindrome[0+i] = 10000*d1 + 1000*d2 +100*d3 + 10*d2 + d1;//(处理回文数...)
                i++;
                sum++;
            }
        }
    }
    for (d1 = 0; d1 <= 9; d1++) {    // 包括偶数
        for (d2 = 0; d2 <= 9; d2++) {
            for (d3 = 0; d3 <= 9; d3++) {
                palindrome[0+i] = 1000*d1 + 100*d2 +10*d3 + d2;//(处理回文数...)
                i++;
                sum++;
            }
        }
    }
    for (d1 = 0; d1 <= 9; d1++) {    // 包括偶数
        for (d2 = 0; d2 <= 9; d2++) {
            for (d3 = 0; d3 <= 9; d3++) {
                palindrome[0+i] = 100*d1 + 10*d2 +d3 ;//(处理回文数...)
                i++;
                sum++;
            }
        }
    }
    for (d1 = 0; d1 <= 9; d1++) {    // 包括偶数
        for (d2 = 0; d2 <= 9; d2++) {
            for (d3 = 0; d3 <= 9; d3++) {
                palindrome[0+i] = 10*d1 +d2;//(处理回文数...)
                i++;
                sum++;
            }
        }
    }
    for (d1 = 0; d1 <= 9; d1++) {    // 包括偶数
        for (d2 = 0; d2 <= 9; d2++) {
            for (d3 = 0; d3 <= 9; d3++) {
                palindrome[0+i] = d1 +d2;//(处理回文数...)
                i++;
                sum++;
            }
        }
    }
    for (d1 = 0; d1 <= 9; d1++) {    // 包括偶数
        for (d2 = 0; d2 <= 9; d2++) {
            for (d3 = 0; d3 <= 9; d3++) {
                palindrome[0+i] = d1;//(处理回文数...)
                i++;
                sum++;
            }
        }
    }
    cin>>a>>b;
    for(int i=1;i<=sum;i++){
        if(palindrome[i]>=a&&palindrome[i]<=b){
            cout<<palindrome[i];
        }
    }
    return 0;
}

改过了,不行呀


by chengkelin2024 @ 2024-06-14 13:32:22

@mc_xiexie


by mc_xiexie @ 2024-06-14 13:34:18

@chengkelin2024

质数


by chengkelin2024 @ 2024-06-14 13:35:17

@mc_xiexie 没判断吗


by chengkelin2024 @ 2024-06-14 13:39:00

@mc_xiexie 还是哪里有问题


by mc_xiexie @ 2024-06-14 13:40:01

@chengkelin2024

没判质数

bool check2(int x)//判质数
{
    if(x == 2) return 1;
    for(int i = 2; i <= sqrt(x); i++)
        if(x % i == 0) return 0;
    return 1;
}

by chengkelin2024 @ 2024-06-14 13:41:25

@mc_xiexie 判断了,刚刚加进去了,还是不行呀


by mc_xiexie @ 2024-06-14 13:42:57

不用生成所有回文数,判a到b中的回文质数就行了


上一页 | 下一页