#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