求助:为什么这样不对?
查看原帖
求助:为什么这样不对?
1117468
kaikaiyu楼主2023/10/19 16:59
#include <stdio.h>
#include <stdbool.h>
int weishu(long long int a);
int is_prime(long long int a);
int is_huiwen(long long int a);

int main(void)
{
    long long int m,n;
    scanf("%lld%lld",&m,&n);
    for(long long int h=m;h<=n;h=h+2)
    {
       if(weishu(h)==1 && is_huiwen(h)==1 &&is_prime(h)==1)
       printf("%lld\n",h);               
    }
     return 0;
}

int weishu(long long int a)
{
    if((a>=1000&&a<=9999 )|| (a>=100000&&a<=999999) )return 0;
    return 1;
}

int is_huiwen(long long int a)
{
    int b[20]={0};
    int j=1;
    for(int i=0;a!=0;i++)
    {
        b[i]=a%10;
        a=a/10;
        j++;
    }
    for(int i=0;i<=j;i++)
    {
        if(b[i]!=b[j-i]) return 0;
    }
    return 1;
}

int is_prime(long long int a)
{
    for(int i=2;i*i<=a;i++)
    {
        if(a%i==0) return 0;
    }
    return 1;
}
2023/10/19 16:59
加载中...