• 1343. Fairy Tale


    1343

    想了好一会 以为会有什么定理呢 没想到 就试着搜了 看来素数还是很多的 跑的飞快

    注意会有前导0的情况 还有0,1不是素数。。。

     1 #include <iostream>
     2 #include<cstdio>
     3 #include<cstring>
     4 #include<algorithm>
     5 #include<stdlib.h>
     6 #include<vector>
     7 #include<queue>
     8 #include<cmath>
     9 using namespace std;
    10 #define LL long long
    11 int flag;
    12 char a[20];
    13 LL p[20];
    14 int judge(LL x)
    15 {
    16     if(x<2)return 0;
    17     int i,o = sqrt(x*1.0);
    18     for(i = 2; i <= o+1 ; i++)
    19     if(x%i==0)
    20     return 0;
    21     return 1;
    22 }
    23 void dfs(int x,LL s,int pa[])
    24 {
    25     if(flag) return ;
    26     int i;
    27     if(x>12)
    28     {
    29         if(judge(s))
    30         {
    31             for(i = 1 ; i <= 12 ; i++)
    32             cout<<pa[i];
    33             puts("");
    34             flag = 1;
    35         }
    36         return ;
    37     }
    38     for(i = 0; i <= 9 ; i++)
    39     {
    40         s+=p[12-x]*i;
    41         pa[x] = i;
    42         dfs(x+1,s,pa);
    43         s-=p[12-x]*i;
    44     }
    45 }
    46 int main()
    47 {
    48     int i,n;
    49     int pa[20];
    50     LL s=0;
    51     cin>>n;
    52     p[0] = 1;
    53     for(i = 1; i <= 12 ; i++)
    54     p[i] = p[i-1]*10;
    55     for(i = 1 ; i <= n ; i++)
    56     {
    57         cin>>a[i];
    58         pa[i] = a[i]-'0';
    59         s+=(a[i]-'0')*p[12-i];
    60     }
    61     if(n==12)
    62     {
    63         printf("%lld
    ",s);
    64         return 0;
    65     }
    66     dfs(n+1,s,pa);
    67     return 0;
    68 }
    View Code
  • 相关阅读:
    ubuntu 10.04 install network bcm4418
    linux vi commend
    api
    ubuntu安装jdk
    maven常用命令介绍
    ubuntu 10.04 install oracle11g
    putty中文乱码问题解决
    SCP不需要密码
    java command
    Ubuntu vsftpd 安装配置
  • 原文地址:https://www.cnblogs.com/shangyu/p/3417078.html
Copyright © 2020-2023  润新知