现在的位置: 首页 > 综合 > 正文

vijos p1042 捕风捉影

2012年02月02日 ⁄ 综合 ⁄ 共 491字 ⁄ 字号 评论关闭

~~~题目链接~~~

思路:这的上限为100000000, 直接对每个数判断要超时, 后来打表发现了最多到10000000有数, 这之后的数都不符合要求。所以上限调整为10000000

code:

#include <stdio.h>
#include <string.h>
#define N 10000002
using namespace std;
int is_prime(int x)
{
    int i = 0;
    for(i = 2; i*i<=x; i++)
        if(x%i == 0) return 0;
    return 1;
}

int judge(int x)
{
    int i = 0, len = 0, num[12];
    while(x)
    {
        num[len++] = x%10;
        x /= 10;
    }
    for(i = 0; i<=len/2; i++)
        if(num[i] != num[len-1-i]) return 0;
    return 1;
}
int main()
{
    int i = 0, j = 0, m = 0, n = 0;
    scanf("%d %d", &m, &n);
    if(n>N) n = N;
    for(i = m; i<=n; i++)
        if(judge(i) && is_prime(i)) printf("%d\n", i);
    return 0;
}

抱歉!评论已关闭.