Advertisement
HwapX

Lowest prime palindrome greater than time

Apr 23rd, 2014
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.03 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <math.h>
  3. #include <time.h>
  4. #include <windows.h>
  5.  
  6. typedef time_t prime_t;
  7.  
  8. prime_t reverseDigits(prime_t num)
  9. {
  10.     prime_t rev_num = 0;
  11.     while(num > 0)
  12.     {
  13.         rev_num = rev_num*10 + num%10;
  14.         num = num/10;
  15.     }
  16.     return rev_num;
  17. }
  18.  
  19. prime_t nextOddPalindrome(prime_t n) {
  20.     do {
  21.         n += 2;
  22.     } while(n != reverseDigits(n));
  23.    
  24.     return n;
  25. }
  26.  
  27. int isPrime(prime_t n) {
  28.     int i;
  29.    
  30.     if(n < 2)
  31.         return 0;
  32.     else if(n == 2)
  33.         return 1;
  34.    
  35.     for(i = 3; i < sqrt(n) + 1; i+=2)
  36.         if(n % i == 0)
  37.             return 0;
  38.            
  39.     return 1;
  40. }
  41.  
  42. int main(int argc, char **argv)
  43. {
  44.     time_t t = time(NULL);
  45.     printf("next prime palindrome of %I64u is ", t);
  46.    
  47.     unsigned int s = GetTickCount();
  48.  
  49.     if(t % 2 == 0)
  50.         t--;
  51.     do {
  52.         t = nextOddPalindrome(t);
  53.     } while(!isPrime(t));
  54.    
  55.     printf("%I64u\n", t);
  56.     printf("elapsed %lu milliseconds", GetTickCount() - s);
  57.     return 0;
  58. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement