C语言学习 五位以内的对称素数

题目描述

判断一个数是否为对称且不大于五位数的素数。

意思是小于100,000的数

输入

第一行:测试数据组数T

接下来包含T行,每行由1个不大于五位数的正整数构成。

输出

对于每个正整数,如果该数是不大于五位数的对称素数,则输出”Yes”,否则输出”No”,每个判断结果单独列一行。

#include <stdio.h>
#include <math.h>

int main()
{
 int i, j, n, num, flag, lmt;
  
   scanf("%d",&n);
  
   for(i=1;i<=n;i++)
    {
     scanf("%d",&num);
       flag = 1;
      
       lmt = sqrt(num) + 1;
      
       if(num == 1)
          flag = 0;
      
       for(j=2;j<=lmt;j++)
        {
         if(num % j == 0)
            {
             flag = 0;
               break;
            }
        }
    
     if(flag==1)
        {
         if(num < 12)
              flag = 1;
      
        else if(num > 100 && num < 1000)
         {
          if ((num%10) == (num / 100))
                flag = 1;
         }
      
        else if(num > 10000 && num < 100000)
            {
             if((num%10) == (num/10000) && ((num%10)%10) == (num/1000)%10)
                 flag = 1;
         }
      
        else
         {
          flag = 0;
         }
        }
    
     if(flag == 1)
     {
     printf("Yes\n");
     }
    else
      {
      printf("No\n");
      }

    }
  
 return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值