球球大佬帮帮孩子吧

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

huijsjs12 @ 2024-10-06 17:47:22


by huijsjs12 @ 2024-10-06 17:48:12

https://www.luogu.com.cn/record/180505364


by WXYWXY1123 @ 2024-10-06 17:49:33

东北大花袄!(确信


by huijsjs12 @ 2024-10-06 17:55:44

@WXYWXY1123 ?


by WXYWXY1123 @ 2024-10-06 17:57:57

@huijsjs12 (指测试点颜色)


by huijsjs12 @ 2024-10-06 19:17:06

#include<stdio.h>
#include<math.h>
int isprime(int i);

int main()
{
    int a, b, palindrome;
    scanf("%d %d", &a, &b);
    int d1, d2, d3, d4, d5;
    for (int i = 2; i < 10; i++) {
        if (i >= a && i <= b && isprime(i) == 1) {
            printf("%d\n", i);
        }
    }
    for (d1 = 1; d1 <= 9; d1 += 2) {
        for (d2 = 0; d2 <= 9; d2++) {
            palindrome = 100 * d1 + 10 * d2 + d1;
            if (isprime(palindrome) == 1&& a<=palindrome&& palindrome<=b) {
                printf("%d\n", palindrome);
            }

        }
    }
    for (d1 = 1; d1 <= 9; d1 += 2) {
        for (d2 = 0; d2 <= 9; d2++) {
            for (d3 = 0; d3 <= 9; d3++) {
                palindrome = 10000 * d1 + 1000 * d2 + 100 * d3 + 10 * d2 + d1;
                if (isprime(palindrome) == 1 && a <= palindrome && palindrome <= b) {
                    printf("%d\n", palindrome);
                }
            }
        }
    }

    //n=7
    for (d1 = 1; d1 <= 9; d1 += 2) {    // 只有奇数才会是素数
        for (d2 = 0; d2 <= 9; d2++) {
            for (d3 = 0; d3 <= 9; d3++) {
                for (d4 = 0; d4 <= 9; d4++) {
                    palindrome = 1000000 * d1 + 100000 * d2 + 10000 * d3 + 1000 * d4 + 100 * d3 + 10 * d2 + d1;
                    if (isprime(palindrome) == 1 && a <= palindrome && palindrome <= b) {
                        printf("%d\n", palindrome);
                    }//(处理回文数...)
                }
            }
        }
    }
    //n=9  
    for (d1 = 1; d1 <= 9; d1 += 2) {    // 只有奇数才会是素数
        for (d2 = 0; d2 <= 9; d2++) {
            for (d3 = 0; d3 <= 9; d3++) {
                for (d4 = 0; d4 <= 9; d4++) {
                    for (d5 = 0; d5 <= 9; d5++) {
                        palindrome = 100000000 * d1 + 10000000 * d2 + 1000000 * d3 + 100000 * d4 + 10000 * d5 + 1000 * d4 + 100 * d3 + 10 * d2 + d1;
                        if (isprime(palindrome) == 1 && a <= palindrome && palindrome <= b) {
                            printf("%d\n", palindrome);
                        }//(处理回文数...)               
                    }
                }
            }

        }
    }

    return 0;
}
int isprime(int i)
{
    int yes = 1;
    for (int q = 2; q <= sqrt(i); q++) {
        if (i % q == 0) {
            yes = 0;
            break;
        }
    }
    return yes;
}

|