#include <iostream> #include <string> #define MAXN 150 using namespace std; int _m[MAXN]; string p[65] = { "1", "3", "9", "27", "81", "243", "729", "2187", "6561", "19683", "59049", "177147", "531441", "1594323", "4782969", "14348907", "43046721", "129140163", "387420489", "1162261467", "3486784401", "10460353203", "31381059609", "94143178827", "282429536481", "847288609443", "2541865828329", "7625597484987", "22876792454961", "68630377364883", "205891132094649", "617673396283947", "1853020188851841", "5559060566555523", "16677181699666569", "50031545098999707", "150094635296999121", "450283905890997363", "1350851717672992089", "4052555153018976267", "12157665459056928801", "36472996377170786403", "109418989131512359209", "328256967394537077627", "984770902183611232881", "2954312706550833698643", "8862938119652501095929", "26588814358957503287787", "79766443076872509863361", "239299329230617529590083", "717897987691852588770249", "2153693963075557766310747", "6461081889226673298932241", "19383245667680019896796723", "58149737003040059690390169", "174449211009120179071170507", "523347633027360537213511521", "1570042899082081611640534563", "4710128697246244834921603689", "14130386091738734504764811067", "42391158275216203514294433201", "127173474825648610542883299603", "381520424476945831628649898809", "1144561273430837494885949696427", "3433683820292512484657849089281" }; int fun(unsigned long long num); int main() { //freopen("acm.acm","r",stdin); unsigned long long num; unsigned long long tem; int index; int i; while(cin>>num) { if(num == 0) { break; } // cout<<num<<endl; if(num == 1) { cout<<"{ }"<<endl; } else { index = fun(num-1); cout<<"{ "; //cout<<index<<endl; int j = 0; for(i = 0; i < index-1; ++ i) { if(_m[i] == 1) { cout<<p[j]<<", "; } ++ j; } if(_m[i] == 1) { cout<<p[j]; } cout<<" }"<<endl; } } } int fun(unsigned long long num) { int i = 0; while(num) { _m[i ++] = num%2; num /= 2; } return i; }
时间: 2024-11-15 06:43:36