PAT高度1152グーグルの募集(20分)

2004年7月に、Googleが採用のための(下図に示す)シリコンバレーのハイウェイ101沿いの巨大看板に掲示しました。コンテンツは、自然定数の連続した数字で最初に検出された10桁の素数からなるURL超簡単です  電子。この素数を見つけることができる人は、このウェブサイトにアクセスし、Googleの採用プロセスの次のステップに行くことができます。

prime.jpg

天然の定数  eは、周知の超越数(超越数)です。最初のいくつかの数字は、次のとおり  太字の10桁がGoogleの質問への答えですE = 2.718281828459045235360287471352662497757247093699959574966967627724076630353547594571382178525166427427466391932003059921 ...。

任意のL桁の番号の連続した数字の最初のK-桁の素数を見つける:今、あなたは、より一般的な問題を解決するように求められます。

入力仕様:

各入力ファイルには、1つのテストケースが含まれています。(L:それぞれの場合は、最初の行に2つの正の整数与える千≤)及びK(<10)、指定された数と、それぞれ発見される素数の桁の数です。次いで、L桁の数Nは、次の行に与えられています。

出力仕様:

そのような数は、出力は存在しない場合、各テストケースのために、ラインにNの連続した数字で第K桁の素数を印刷する  404 代わりに。注:先行ゼロはまた、K桁の一部としてカウントされなければなりません。例えば、200236の4桁の素数を見つけるために、0023溶液です。先行ゼロは、元の数ではないので、最初の数字2は、溶液0002として扱われてはなりません。

サンプル入力1:

20 5
23654987725541023819

サンプル出力1:

49877

サンプル入力2:

10 3
2468024680

サンプル出力2:

404


書式#include <iostreamの> 
の#include <cmath> 
の#include <cstdlib> 使用して名前空間はstd;
// 裁判官は素数であるブール isPrime(int型数値){
     場合(NUMの== 2 ||のnum == 3を返す以下のためにint型 I = 2 ; I <= SQRT(NUM); iは++ ){
         場合(NUMの%はiは== 0を返す
    } を返す
} int型のmain()
{ int型

 
  
     


    LENは、prime_len。文字列strの。
    CIN >> LEN >> prime_len >> STR。
    以下のためにint型 i = 0 ; i)は=(LEN-prime_lenを<; iは++ ){
         int型 TMP = ATOI(str.substr(I、prime_len).DATA())。
        もし(isPrime(TMP)){ 
            COUT << str.substr(I、prime_len)。
            システム(一時停止)。
            リターン 0 ; 
        } 
    } 
    COUT << 404 
    システム(一時停止)。
    リターン 0 ; 
}

 

おすすめ

転載: www.cnblogs.com/littlepage/p/11616681.html