13:大整数的因子
-
总时间限制:
- 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<cstdio> #include<cstring> char str[32]; int len,k; bool isTrue(int k){ int num1 = 0, num2=0; for(int i=0;i<len;i++){ num1=str[i]-'0'+num2*10; num2=num1%k; } return num2 == 0; } int main(){ scanf("%s",str); len = strlen(str); bool ok = false,first = true; for(k=2;k<=9;k++){ if(isTrue(k)){ ok=true; if(first){ printf("%d",k); first = false; }else{ printf(" %d",k); } } } if(!ok) puts("none"); else putchar('\n'); return 0; }