2 Nisan 2013 Salı

Fourty nineth solution of Project Euler - Prime permutations





#include "stdafx.h"
#include <iostream>
#include<stdio.h>
#include <cmath>
#include <time.h>
using namespace std;
bool prime(unsigned long long y);

bool prime(unsigned long long y) {
 for (unsigned long long i = 3; i <= (int) sqrt((double) y); i++) {
 if (y % i == 0)
 return 0;
 }
 return 1;
}
bool issamedigit(int x,int y) {
int seq[4],seqq[4];
 int c=0;
 do {
seq[c]=x%10;
  x/=10;
  c++;
 }while(x>0);
 c=0;
  do {
seqq[c]=y%10;
  y/=10;
  c++;
 }while(y>0);

for(int i=0;i<4;i++) {
if(seq[i]!=seqq[0] && seq[i]!=seqq[1] && seq[i]!=seqq[2] && seq[i]!=seqq[3]) {
return 0;
}
}

for(int i=0;i<4;i++) {
if(seqq[i]!=seq[0] && seqq[i]!=seq[1] && seqq[i]!=seq[2] && seqq[i]!=seq[3]) {
return 0;
}
}
 return 1;
}
void make() {
for(int i=1001;i<9999;i+=2) {
if(prime(i)==1)  {
for(int k=i+2;k<9999;k+=2) {
if(prime(k)==1 && issamedigit(i,k)==1) {
int m=k+(k-i);
if(m<9999 && prime(m)==1 && issamedigit(k,m)==1 && i>2000) {
cout << "Project Euler - Problem 49(Prime permutations)\n";
                   cout << "Result :" <<i << k << m << " efekanpulatli.blogspot.com" << endl;
  return;

}
}
}
}
}
}
int main() {
clock_t tStart = clock();
make();
    printf("Time taken: %.2fs\n", (double)(clock() - tStart)/CLOCKS_PER_SEC);
 system("pause");
return 0;
}

Hiç yorum yok:

Yorum Gönder