fork download
  1. #include <stdlib.h> //for atoi()
  2. #include <stdio.h> //for printf()
  3. #include <unistd.h> //for read()
  4. #include <math.h> //for sqrt()
  5.  
  6. int isPrime(int num) {
  7. if(num <= 1)
  8. return 0;
  9. if (num <= 3)
  10. return 1;
  11. int range = sqrt(num);
  12. if (num % 2 == 0 || num % 3 == 0)
  13. return 0;
  14. for (int i = 5; i <= range; i += 6)
  15. if (num % i == 0 || num % (i + 2) == 0)
  16. return 0;
  17. return 1;
  18. }
  19.  
  20. int main(void) {
  21. char buffer[255] = {0};
  22. int read_count = read(STDIN_FILENO, buffer, 255);
  23. int number;
  24. if (read_count == 0) {
  25. printf("Input empty. Assume the starting number is 1.\n");
  26. number = 1;
  27. }
  28. else {
  29. number = atoi(buffer);
  30. printf("Starting number is %i.\n", number);
  31. }
  32. int distance = 0;
  33. while(1) {
  34. number++;
  35. if (isPrime(number)) {
  36. distance++;
  37. if (number % 10 == 1) break;
  38. }
  39. }
  40. printf("Next prime ending in 1 is %i\n", number);
  41. printf("Distance is %i primes\n", distance);
  42. return 0;
  43. }
  44.  
Success #stdin #stdout 0s 5428KB
stdin
7901
stdout
Starting number is 7901.
Next prime ending in 1 is 7951
Distance is 7 primes