Shael08

Untitled

May 20th, 2013
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.77 KB | None | 0 0
  1. #include <iostream>
  2. #include <cmath>
  3.  
  4. #define M 9876543
  5.  
  6.  
  7. using namespace std;
  8.  
  9.  
  10. bool pand(long n) {
  11.     int digits = 0;
  12.     int count = 0;
  13.     int tmp;
  14.  
  15.     if (n<=1) return false;
  16.     if (n<=3) return true;
  17.  
  18.     int k = ceil(sqrt(n));
  19.     for (int i = 3; i <= k; i+=2)
  20.       if (n % i == 0) return false;
  21.  
  22.     while (n > 0) {
  23.         tmp = digits;
  24.         digits = digits | 1 << (int)((n % 10) - 1);
  25.         if (tmp == digits) {
  26.             return false;
  27.         }
  28.  
  29.         count++;
  30.         n /= 10;
  31.     }
  32.     return digits == (1 << count) - 1;
  33.  
  34. }
  35.  
  36.  
  37. int main(){
  38.  
  39. long maxpan=0;
  40.  
  41. for(long i=3; i<=M; i+=2){
  42. if(pand(i)){
  43.         if(i>maxpan) maxpan=i;
  44. }
  45. }
  46.  
  47. cout<<"A legnagyobb pandigitalis primszam: "<<maxpan<<endl;
  48.  
  49.     return 0;
  50. }
Advertisement
Add Comment
Please, Sign In to add comment