首页 > 代码库 > 大整数因子(高精mod)
大整数因子(高精mod)
大整数的因子
- 总时间限制:
- 1000ms
- 内存限制:
- 65536kB
- 描述
-
已知正整数k满足2<=k<=9,现给出长度最大为30位的十进制非负整数c,求所有能整除c的k。
- 输入
- 一个非负整数c,c的位数<=30。
- 输出
若存在满足 c%k == 0 的k,从小到大输出所有这样的k,相邻两个数之间用单个空格隔开;若没有这样的k,则输出"none"。
样例输入
30
样例输出
2 3 5 6
代码
高精模运算
#include<iostream> #include<cstdio> #include<cstring> #include<cmath> using namespace std; int x[100],y[100],k[100],j=0,m,n; char a[100],b[100]; int main() { scanf("%s",a); m=strlen(a); for(int i=0; i<=m; i++) x[i+1]=a[i]-‘0‘; for(int p=2; p<=9; p++) { memcpy(k,x,sizeof(x)); for(int i=1; i<=m+1; i++) { k[i+1]+=(k[i]%p)*10; y[i]=k[i]%p; k[i]=k[i]/p; } if(y[m]==0) { cout<<p<<" "; j++; } } if(j==0)cout<<"none"; return 0; }
ZlycerQan
#include <iostream> using namespace std; int a[10],f=0; string t; int main() { cin >> t; for (int i = 0; t[i]; i++) for (int j = 2; j <= 9; j++) a[j] = (a[j] * 10 + t[i] - ‘0‘) % j; for (int i = 2; i <= 9; i++) if (!a[i]) { cout << i << ‘ ‘; f = 1; } if (!f) cout<<"none"; return 0; }
大整数因子(高精mod)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。