zoukankan      html  css  js  c++  java
  • Vijos—— T 1359 Superprime

    https://vijos.org/p/1359

    描述

    农民约翰的母牛总是生产出最好的肋骨。你能通过农民约翰和美国农业部标记在每根肋骨上的数字认出它们。

    农民约翰确定他卖给买方的是真正的质数肋骨,是因为从右边开始切下肋骨,每次还剩下的肋骨上的数字都组成一个质数,举例来说:
    7 3 3 1
    全部肋骨上的数字 7331是质数;三根肋骨 733是质数;二根肋骨 73 是质数;当然,最后一根肋骨 7 也是质数。

    7331 被叫做长度 4 的特殊质数。

    写一个程序对给定的肋骨的数目 N (1<=N<=8),求出所有的特殊质数。数字1不被看作一个质数。

    格式

    输入格式

    单独的一行包含N。

    输出格式

    按顺序输出长度为 N 的特殊质数,每行一个。

    并按大小顺序排列(从小到大).

    样例1

    样例输入1

    4
    

    样例输出1

    2333
    2339
    2393
    2399
    2939
    3119
    3137
    3733
    3739
    3793
    3797
    5939
    7193
    7331
    7333
    7393
    

    限制

    每个测试点1秒

    提示

    很简单,不要先算出来在交表-_-~~

    来源

    原题来自USACO

    输出的第一位一定是2/3/5/7,然后爆搜后面的数,每次判断是否为素数

    若不是说明当前组成的数不可行,return

     1 #include <cstdio>
     2 
     3 int n;
     4 
     5 inline bool if_prime(int x)
     6 {
     7     for(int i=2; i*i<=x; ++i)
     8         if(x%i==0) return false;
     9     return true;
    10 }
    11 
    12 void DFS(int cnt,int num)
    13 {
    14     if(!if_prime(num)) return ;
    15     if(cnt==n)
    16     {
    17         printf("%d
    ",num);
    18         return ;
    19     }
    20     for(int i=1; i<=9; ++i)
    21         DFS(cnt+1,num*10+i);
    22 }
    23 
    24 int AC()
    25 {
    26     scanf("%d",&n);
    27     DFS(1,2);DFS(1,3);
    28     DFS(1,5);DFS(1,7);
    29     return 0;
    30 }
    31 
    32 int Aptal=AC();
    33 int main(){;}
    ——每当你想要放弃的时候,就想想是为了什么才一路坚持到现在。
  • 相关阅读:
    搬家
    围棋程序
    图论----基础知识
    贪心算法
    944. 删列造序
    1221. 分割平衡字符串
    面试题 01.01. 判定字符是否唯一
    剑指 Offer 10- II. 青蛙跳台阶问题
    面试题 16.11. 跳水板
    1137. 第 N 个泰波那契数
  • 原文地址:https://www.cnblogs.com/Shy-key/p/7500445.html
Copyright © 2011-2022 走看看