fork download
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <iostream>
  4. #include <string>
  5. #include <math.h>
  6. #include <string.h>
  7. using namespace std;
  8. #define MAXDIGITS 255
  9. #define MAXLINES 1000
  10. #define p(y) printf("%s\n",y)
  11. int isPrime(int num) {
  12. if (num == 1) return 0; //1
  13. if (num == 2) return 1; //2
  14. if ((num & 1) == 0) return 0; //even
  15. for (int i = 3; i < (sqrt((double)num) + 1); i += 2)
  16. if (num % i == 0) return 0;
  17. return 1;
  18. }
  19. int main() {
  20. string tmp;
  21. long result[MAXLINES];
  22. int length = 0;
  23. int z = 0;
  24. cin >> tmp;
  25. while (tmp!="0") {
  26. length = tmp.length();
  27. long maxPrime = 0;
  28.  
  29. for (int i = 1; (i <= 5) && (i<= length); i++) {//i digits maxmum digits: 5
  30. for (int j = 0; j <= (length - i); j++) {
  31. string num = tmp.substr(j, i);
  32. long number = stol(num);
  33. //printf("%ld\n", number);
  34. if (isPrime(number) && number>maxPrime) {
  35. maxPrime = number;
  36. }
  37. //printf("%ld\n", maxPrime);
  38. }
  39. }
  40. result[z++] = maxPrime;
  41. //printf("%ld\n", maxPrime);
  42. cin >> tmp;
  43. }
  44. for (int i = 0; i < z; i++)
  45. cout << result[i]<<endl;
  46. //cin >> tmp;
  47. return 0;
  48. }
Success #stdin #stdout 0s 4532KB
stdin
11245
91321150448
1226406
0
stdout
11
1321
2