大整数因子(高精mod)

    xiaoxiao2021-04-16  38

    大整数的因子

    总时间限制:  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; }

     

     

    转载请注明原文地址: https://ju.6miu.com/read-672040.html

    最新回复(0)