大整数因子

已知正整数 kk 满足 2 \le k \le 92k9,现给出长度最大为 3030 位的十进制非负整数 cc,求所有能整除 cc 的 kk。

输入格式

一个非负整数 cc,cc 的位数 \le 3030。

输出格式

若存在满足 c \% k = 0c%k=0 的 kk,从小到大输出所有这样的 kk,相邻两个数之间用单个空格隔开;若没有这样的 kk,则输出"none"

输出时每行末尾的多余空格,不影响答案正确性

样例输入

30

样例输出

2 3 5 6
 1 #include <iostream>
 2 #include<cstring>
 3 using namespace std;
 4 
 5 
 6 int main(){
 7     char a[32];//存被除数
 8     bool flag=false;
 9     int t,len;
10     cin>>a;
11     len = strlen(a);
12     for(int i=2;i<=9;i++){
13         t = 0;
14         for(int j =0;j<len;j++){
15             if(a[j]-'0'+t>=i){
16                 //加上高一位留下的数,要乘10 
17                 //够除的情况,取余
18                 t=((a[j]-'0'+t)%i)*10;
19             }else{
20                 //不够除的情况
21                 t=(a[j]-'0')*10;
22             }
23         }
24         if(t==0){
25             cout<<i<<" ";
26             flag=1;
27         }
28     }
29     if(flag==0){
30         cout<<"none"<<endl;
31     }
32 }

猜你喜欢

转载自www.cnblogs.com/BlairGrowing/p/12678609.html