• (Problem 41)Pandigital prime


    We shall say that an n-digit number is pandigital if it makes use of all the digits 1 to n exactly once. For example, 2143 is a 4-digit pandigital and is also prime.

    What is the largest n-digit pandigital prime that exists?

     1 #include<stdio.h>
     2 #include<math.h>
     3 #include<string.h>
     4 #include<ctype.h>
     5 #include<stdlib.h>
     6 #include<stdbool.h>
     7 
     8 bool isprim(int n)
     9 {
    10     int i=2;
    11     if(n==1) return false;
    12     for(; i*i<=n; i++)
    13     {
    14         if(n%i==0)  return false;
    15     }
    16     return true;
    17 }
    18 
    19 bool pandigital(int n)
    20 {
    21     char s[10],d[10]={0};
    22     int i=0;
    23     sprintf(s,"%d",n);
    24     int len=strlen(s);
    25     while(i<len)
    26     {
    27         switch(s[i]-'0')
    28         {
    29             case 1: d[1]++;break;
    30             case 2: d[2]++;break;
    31             case 3: d[3]++;break;
    32             case 4: d[4]++;break;
    33             case 5: d[5]++;break;
    34             case 6: d[6]++;break;
    35             case 7: d[7]++;break;
    36             case 8: d[8]++;break;
    37             case 9: d[9]++;break;
    38             default: break;
    39         }
    40         i++;
    41     }
    42     for(i=1; i<=len; i++)
    43     {
    44         if(d[i]!=1)  return false;
    45     }
    46     if(!isprim(n))  return false;
    47     else return true;
    48 }
    49 
    50 int main()
    51 {
    52     int i=10000001;
    53     while(i>1000)
    54     {
    55         if(pandigital(i))
    56         {
    57             printf("%d\n",i);
    58             break;
    59         }
    60         i=i-2;
    61     }
    62     return 0;
    63 }
    Answer:
    7652413

     

  • 相关阅读:
    观察者模式(Observer)
    外观模式(三层解耦)
    建造者模式(Builder)
    简单工厂
    单例模式(Winform窗体的实现)
    20180213 字符串spilt方法,字符串打包zip方法
    20180212第一发:Python与Json编码解码举例
    Eclipse插件Fat Jar
    java学习之浅谈多线程4SwingWorker
    Android SDK manager 闪退
  • 原文地址:https://www.cnblogs.com/cpoint/p/3367344.html
Copyright © 2020-2023  润新知