31 Mart 2013 Pazar

Fifty second solution of Project Euler - Permuted multiples



#include "stdafx.h"
#include <iostream>
#include<stdio.h>
#include <time.h>
using namespace std;
bool div(int i,int seqq[6]) {
int seq[6];
memcpy(seq, seqq, sizeof seqq[0] * 6);
int dizii[6],c=0;
do {
dizii[c]=i%10;
i/=10;
c++;
}while(i>0);
int counter=0;
for(int k=0;k<6;k++) {
for(int m=0;m<6;m++) {
if(dizii[k] == seq[m]) {
if(dizii[k]!=-1 && seq[m]!=-1)
counter++;
dizii[k]=-1;
seq[m]=-1;
}
}
}
if(counter==6){

return 1;

}
return 0;
}



void make() {
int dizi[6],m;
for(int i=100000;i<170000;i++) {
m=i;
int c=0;
do {
dizi[c]=m%10;
m/=10;
c++;

}while(m>0);
if(div(i*2,dizi)==1)
{
if(div(i*3,dizi)==1)
if(div(i*4,dizi)==1)
if(div(i*5,dizi)==1)
if(div(i*6,dizi)==1) {
cout << "Project Euler - Problem 52(Permuted multiples)\n";
  cout << "Result :" << i << " efekanpulatli.blogspot.com" << endl;
}
}
}

}

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