Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <cstdio>
- #define ULL unsigned long long
- ULL arrpotegi[10]={0,1,8192,1594323,67108864,1220703125,13060694016,96889010407,549755813888,2541865828329};
- //ULL arrpotegi[10]={0,1,8,27,64,125,216,343,512,729};
- unsigned char cyferki[9] = {0};
- #define DEBUG true
- ULL check()
- {
- ULL liczba=0,temp=0;
- unsigned char temp_cyferki[9] = {0};
- for(int i=0;i<9;i++)
- liczba+=arrpotegi[i+1]*cyferki[i];
- temp=liczba;
- unsigned char n=0;
- for(int i=0;i<30;i++)
- {
- n=liczba%10;
- liczba/=10;
- if(n>0)
- temp_cyferki[n-1]++;
- }
- for(int i=0;i<9;i++)
- if(cyferki[i]!=temp_cyferki[i]) return 0;
- return temp;
- }
- int main()
- {
- ULL suma = 0;
- for(int i=0;i<31;i++)
- {
- cyferki[0]=i;
- if(i > 0) suma++;
- if (suma > 29)
- {
- suma-=i;
- break;
- }
- for(int j=0;j<31;j++)
- {
- cyferki[1]=j;
- if(j > 0) suma++;
- if (suma > 29)
- {
- suma-=j;
- break;
- }
- for(int k=0;k<31;k++)
- {
- cyferki[2]=k;
- if(k > 0) suma++;
- if (suma > 29)
- {
- suma-=k;
- break;
- }
- for(int l=0;l<31;l++)
- {
- cyferki[3]=l;
- if(l > 0) suma++;
- if (suma > 29)
- {
- suma-=l;
- break;
- }
- for(int m=0;m<31;m++)
- {
- cyferki[4]=m;
- if(m > 0) suma++;
- if (suma > 29)
- {
- suma-=m;
- break;
- }
- for(int n=0;n<31;n++)
- {
- cyferki[5]=n;
- if(n > 0) suma++;
- if (suma > 29)
- {
- suma-=n;
- break;
- }
- for(int o=0;o<31;o++)
- {
- cyferki[6]=o;
- if(o > 0) suma++;
- if (suma > 29)
- {
- suma-=o;
- break;
- }
- for(int p=0;p<31;p++)
- {
- cyferki[7]=p;
- if(p > 0) suma++;
- if (suma > 29)
- {
- suma-=p;
- break;
- }
- for(int r=0;r<31;r++)
- {
- cyferki[8]=r;
- if(r > 0) suma++;
- if (suma > 29)
- {
- suma-=r;
- break;
- }
- ULL tmp=check();
- if(tmp>1) printf("%lld\n",tmp);
- }
- }
- }
- }
- }
- }
- }
- }
- }
- return 0;
- }
Add Comment
Please, Sign In to add comment