1171:大整数的因子
时间限制: 1000 ms 内存限制: 65536 KB
【题目描述】
已知正整数k满足2≤k≤9,现给出长度最大为30位的十进制非负整数c,求所有能整除c的k。
【输入】
一个非负整数c,c的位数≤30。
【输出】
若存在满足 c%k == 0 的k,从小到大输出所有这样的k,相邻两个数之间用单个空格隔开;若没有这样的k,则输出"none"。
【输入样例】
30
【输出样例】
2 3 5 6
【来源】
No
1. #include <cstdio> 2. #include <cstring> 3. #include <iostream> 4. using namespace std; 5. int main() 6. { 7. char charc[31]; 8. int c[35],n,i,j,t,yu,len; 9. scanf("%s",charc); 10. memset(c,0,sizeof(c)); 11. len=strlen(charc); 12. int k=0; 13. for(i=2;i<=9;i++){ 14. for(t=1;t<=len;t++) c[t]=charc[t-1]-'0'; 15. j=1; 16. yu=0; 17. while(j<=len){ 18. if(c[j]+10*yu>=i) yu=(c[j]+10*yu)%i; 19. else yu=c[j]+10*yu; 20. j++; 21. } 22. if(yu==0) { 23. printf("%d ",i); 24. k=1; 25. } 26. } 27. if(k==0) printf("none"); 28. return 0; 29. }