#include <iostream> #include <vector> #include <algorithm> using namespace std; vector<int> div(vector<int> &A,int b,int &r){ r=0; vector<int> C;//存商 for(int i=A.size()-1;i>=0;i--){ r=r*10+A[i]; C.push_back(r/b);//万千百十个 r%=b; } reverse(C.begin(),C.end());//个十百千万 while(C.size()>1&&C.back()==0) C.pop_back();//去除高位前导零 return C; } int main() { string a; while(cin>>a&&a[0]!='-'){ vector<int> A; for(int i=a.size()-1;i>=0;i--) A.push_back(a[i]-'0');//个十百千万 bool flag=false; for(int k=2;k<=9;k++){ int r;//存储余数 div(A,k,r); if(r==0) { cout<<k<<" "; flag=true; } } if(flag) cout<<endl; if(!flag) cout<<"none"<<endl; } return 0; } // 64 位输出请用 printf("%lld")