#include #include #include #include #include #include #include #include using namespace std; // initializes the kernel for base using sint=long unsigned int; // std::vector >::size_type; list found; vector fact; char tr[128]; int w[128];unsigned short int b; ofstream kern; void buildfact() {unsigned int kk,n; bool ok; fact.push_back(2);fact.push_back(3);fact.push_back(5); for(n=7;n=el2.length())return false; i=0;j=0; while(i=el1.length())return true;if(j>=el2.length())return false;} else{j++;if(j>=el2.length())return false;} } return true; } bool smaller(string el1,string el2) // checks if el1 is smaller than el2 (assuming incomparability) {sint i; if(el1.length()el2.length())return(false); i=0; while(i::iterator it; ms=argv[1];b=atoi(argv[1]);buildfact(); pref="kernel"; prefms=pref+ms; kern.open(prefms.c_str(),std::ofstream::out | std::ofstream::trunc); for(char c='0';c<='9';c++){w[c]=0+c-'0';tr[0+c-'0']=c;} for(char c='A';c<='Z';c++){w[c]=10+c-'A';tr[10+c-'A']=c;} for(char c='a';c<='z';c++){w[c]=36+c-'a';tr[36+c-'a']=c;} for(i=b+1;i0){p=tr[j%b]+p;j=j/b;}; for(it=found.begin();it!=found.end();it++){if(cover((*it),p))break;} // p is covered if(it!=found.end())continue; found.push_back(p); } for(it=found.begin();it!=found.end();it++)kern<<(*it)<<"\n"; kern.close(); } // end main