fork(2) download
  1. #include <iostream>
  2. #include <string>
  3. #include <cmath>
  4. #include <cstring>
  5. #include <vector>
  6. using namespace std;
  7. vector<bool>primes;
  8.  
  9. void RotateArr(int arr[], int l, int r) {
  10. while(l<=r) {
  11. int temp = arr[l];
  12. arr[l] = arr[r];
  13. arr[r] = temp;
  14. l++;
  15. r--;
  16. }
  17. }
  18. int FindNumber(int arr[], int n) {
  19. int res = 0;
  20. for(int i=0; i<n; i++) {
  21. res *= 10;
  22. res += arr[i];
  23. }
  24. return res;
  25. }
  26. bool check(int arr[], int dig) {
  27. int dup[dig];
  28. for(int i=0; i<dig; i++) {
  29. for(int j=0; j<dig; j++)
  30. dup[j] = arr[j];
  31. /**
  32.   Rotation of array ;;;
  33.   Rotate the whole array
  34.   Rotate First n-i digit
  35.   Rotate Last i digit;
  36.   **/
  37. RotateArr(dup, 0, dig-1);
  38. RotateArr(dup, 0, dig-1-i);
  39. RotateArr(dup, dig-i, dig-1);
  40. int num = FindNumber(dup, dig);
  41. if(!primes[num]) {
  42. return false;
  43. }
  44. }
  45. return true;
  46. }
  47. int main() {
  48. int cnt = 0;
  49. primes.push_back(false);
  50. primes.push_back(false);
  51. for(int i=2; i<1000000; i++) {
  52. primes[i] = true;
  53. }
  54. for(int i=2; i<1000000; i++) {
  55. if(primes[i] == true) {
  56. for(int j=2; j*i < 1000000; j++) {
  57. primes[j*i] = false;
  58. }
  59. }
  60. }
  61. for(int i=2; i<1000000; i++) {
  62. if(primes[i]) {
  63. int arr[100];
  64. int num = i;
  65. int dig = 0;
  66. while(num) {
  67. arr[dig++] = num%10;
  68. num /= 10;
  69. }
  70. int l = 0, r = dig-1;
  71. while(l<=r) {
  72. int temp = arr[l];
  73. arr[l] = arr[r];
  74. arr[r] = temp;
  75. l++;
  76. r--;
  77. }
  78. if(check(arr, dig))
  79. cnt++;
  80. }
  81. }
  82. cout << cnt << endl;
  83. primes.clear();
  84. return 0;
  85. }
  86.  
Runtime error #stdin #stdout #stderr 0.03s 3888KB
stdin
Standard input is empty
stdout
55
stderr
*** glibc detected *** ./prog: free(): invalid next size (fast): 0x08b66008 ***
======= Backtrace: =========
/lib/libc.so.6[0xb753e1f5]
/lib/libc.so.6(cfree+0x9c)[0xb753facc]
/usr/lib/libstdc++.so.6(_ZdlPv+0x21)[0xb77012e1]
/lib/libc.so.6(exit+0x89)[0xb7500649]
/lib/libc.so.6(__libc_start_main+0xed)[0xb74e977d]
./prog(__gxx_personality_v0+0x41)[0x8048701]
======= Memory map: ========