fork download
  1. <?php
  2.  
  3.  
  4. function isPrime($num) {
  5. //1 is not prime. See: http://e...content-available-to-author-only...a.org/wiki/Prime_number#Primality_of_one
  6. if($num == 1)
  7. return false;
  8.  
  9. //2 is prime (the only even number that is prime)
  10. if($num == 2)
  11. return true;
  12.  
  13. /**
  14.   * if the number is divisible by two, then it's not prime and it's no longer
  15.   * needed to check other even numbers
  16.   */
  17. if($num % 2 == 0) {
  18. return false;
  19. }
  20.  
  21. /**
  22.   * Checks the odd numbers. If any of them is a factor, then it returns false.
  23.   * The sqrt can be an aproximation, hence just for the sake of
  24.   * security, one rounds it to the next highest integer value.
  25.   */
  26. $ceil = ceil(sqrt($num));
  27. for($i = 3; $i <= $ceil; $i = $i + 2) {
  28. if($num % $i == 0)
  29. return false;
  30. }
  31.  
  32. return true;
  33. }
  34.  
  35. $inputs=array();
  36. while($f=fgets(STDIN))
  37. {
  38. array_push($inputs,$f);
  39. }
  40.  
  41. $num_tests=$inputs[0];
  42. if($num_tests<=100)
  43. {
  44. for($i=0;$i<$num_tests;$i++)
  45. {
  46. $strlen=$inputs[$i*2+1];
  47. $str=$inputs[$i*2+2];
  48. if($strlen>=1 && $strlen<=500)
  49. {
  50. $str_arr=str_split($str);
  51. $arr_ascii=array_map(function($val){
  52. return ord($val);
  53. },$str_arr);
  54. $arr_updated=array_map(function($val){
  55. $main_prime=$val;
  56. if((($val>=65 && $val<=90)||($val>=97 && $val<=122)) && !isPrime($val))
  57. {
  58. $truth=false;
  59. $i=1;
  60. while(!$truth){
  61. $updated_one=$val+$i;
  62. $truth=isPrime($updated_one);
  63. ++$i;
  64. }
  65.  
  66. $nxt_prime=$updated_one;//127
  67. //$may_pre_prime=$val-($nxt_prime-$val);//115
  68. for($k=65;$k<$val;$k++)
  69. {
  70. if(isPrime($k) && ($nxt_prime-$val >= $val-$k || $nxt_prime > ord('z')))
  71. $main_prime=$k;
  72. }
  73.  
  74. if($main_prime==$val)
  75. $main_prime=$nxt_prime;
  76. }
  77. else if($main_prime!=10 && ($main_prime<65 || $main_prime>122 )
  78. $main_prime=67;
  79. return chr($main_prime);
  80. },$arr_ascii);
  81. echo implode("",$arr_updated)."\n";
  82. }
  83.  
  84. }
  85.  
  86. }
  87.  
  88.  
  89. ?>
  90.  
Success #stdin #stdout 0.01s 82880KB
stdin
2
375
AvfmaLgLRpQadLyThsxVzkUqbFOdxfbLGdpBWOwmAnflENlYFbdhNHerHVtZkaPLgMtNQovVHpwGfHJdXXWAhYrhwXKPxtnpxCIsaXVAkcxTpVprFNeOVcnSEsgIvfqXPRSUASSDCvAGrFJCDbzGLFhrMYWALElChmurLrEeQttIWctyhQXzZUVAYuCIZecBJbXMxlMHFbZxJRTSZJmZAwCggGabVsovqBrdmmbCTaIHDfUunLFntfGzodKqoAKwCassKMDybethRaQgegsOawfNCNrIAkECEKpbwElhvWtlZBEZqJQpEkzpiSjrqZZIHbszUxwuWreXkxFKxSAiKoemIqETGVxcCjweKhbyXxhVKCbNTQBKgHD
20
AWGrOwUcFWnghtAyvxSb
stdout
CmemaIgISqOaeIOegqSkYqeGOeqeeIGeqCYOmCkekCOkYGeeeOGeeGSSkaSIgOOOmmSGqGeGOeYYYCeYeeYGSqkqqCIgaYSCkaqOqSqeGOeOSakSCggImeqYSSSYCSSGCmCGeGOCGeGIGeeOYYCICkCemkeIeCeOIYaeOYSYSCYkCISeaCOeYOqkOGGeSqOSOSSOmSCCggGaeSgmmqCeemmeCOaIGGeYkkIGkeGmeGqmCGCaggGOGeeeSaOgeggOaeOCOeICkCCCGqeCkemYkSCCSqOOqCkqgSkeqSSIGegYqkYeeYkqGGqSCgGmemIqCOGSqaCkeGeeYqeSGCeOOOCGgGG
CYGeOYaGYkgeCmqSe