本文主要是介绍大整数的因子【北京大学】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目链接
#include<bits/stdc++.h>
using namespace std;
int r=0;
struct bign{int d[10005];int len;bign(){memset(d, 0, sizeof(d));len = 0;}
};
bign divide(bign a, int b){bign c;c.len = a.len;for(int i = a.len-1; i >= 0; i--){r = r * 10 + a.d[i];c.d[i] = r / b;r = r % b; }while(c.len-1>=1 && c.d[c.len-1] == 0){c.len--;}return c;
}int main(){string str;bign u,s;while(cin>>str){if(str=="-1") break;vector<int> ans;u.len = str.size();for(int i=0;i<str.size();i++){u.d[i] = str[u.len-i-1] - '0';}for(int i=2;i<=9;i++){r = 0; divide(u, i);if(r==0) ans.push_back(i);}if(ans.size() == 0){cout<<"none"<<endl;}else{for(int i=0;i<ans.size();i++){if(i>0) cout<<" ";cout<<ans[i];}cout<<endl; }}return 0;
}
这篇关于大整数的因子【北京大学】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!