zoukankan      html  css  js  c++  java
  • 一道小题

    Description

    憨憨吃素是憨憨吃透了素数的缩写,某一天他在看到了这样的一张图:

    img

    该图向憨憨展示了一个非常酷的“全素日”:20192019年55月2323日。即不仅2019052320190523本身是个素数,它的任何以末尾数字33结尾的子串都是素数。这是憨憨吃素后迎接的第一个挑战,请问给你一个给定日期,问是否是“全素日”。

    Input

    输入按照年月日的格式给出一个日期。题目保证日期在0001年1月1日到9999年12月31日之间。

    Output

    从原始日期开始,按照子串长度递减的顺序,每行首先输出一个子串和一个空格,然后输出 YES,如果该子串对应的数字是一个素数,否则输出 NO。如果这个日期是一个全素日,则在最后一行输出 All Primes!。

    Sample Input 1 

    20190523

    Sample Output 1

    20190523 YES
    0190523 YES
    190523 YES
    90523 YES
    0523 YES
    523 YES
    23 YES
    3 YES
    All Primes!

    Sample Input 2 

    20201121

    Sample Output 2

    20201121 NO
    0201121 YES
    201121 YES
    01121 NO
    1121 NO
    121 NO
    21 NO
    1 NO
     1 #include<stdio.h>
     2 #include<string.h>
     3 #include<math.h>
     4 
     5 int DJ(char* p,int n);
     6 int su(int tmp);
     7 int main()
     8 {
     9     char a[20];
    10     gets(a);
    11     int len=strlen(a);
    12     int n,m,cnt=0;
    13     for(n=0;n < len;n ++){
    14         m = DJ(a,n);
    15         if(su(m)){
    16             printf("   YES!
    ");
    17             cnt++;
    18         }else printf("   NO!
    ");
    19     }
    20     //printf("len=%d cnt=%d
    ",len,cnt);
    21     if (cnt==len) printf("All Primes!
    ");
    22     return 0;
    23 }
    24 int DJ(char* p,int n){
    25     int i,tmp=0;
    26     for(i=n;i<strlen(p);i++){
    27         tmp = 10*tmp + p[i]-'0';//将字符数组一节一节转为整数返回来判断素 
    28         printf("%c",p[i]);
    29     }
    30 
    31     return tmp;
    32 }
    33 int su(int tmp){
    34     if (tmp==1||tmp==0) return 0;
    35     for(int i=2;i <= sqrt(tmp);i ++){
    36         if(tmp%i==0){
    37             return 1;
    38         }
    39     }
    40     return 0;
    41 }
    天涯犹在,不诉薄凉。
  • 相关阅读:
    day11
    day10
    day9
    day8
    day7
    day6
    day14
    day13
    day12
    day11
  • 原文地址:https://www.cnblogs.com/Knight02/p/14077189.html
Copyright © 2011-2022 走看看