2925:大整数的因子 总时间限制: 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
问题链接:Bailian2925 大整数的因子 问题简述:(略) 问题分析:大数模除问题,不解释。 程序说明:(略) 参考链接:(略) 题记:程序代码需要简洁易懂,功能要封装到函数。
AC的C语言程序如下:
/* Bailian2925 大整数的因子 */ #include <stdio.h> #include <string.h> #define N 30 + 1 char s[N]; int t[N]; int ismod(int n) { int a = 0, i; for(i = 0; s[i]; i++){ a *= 10; a += t[i]; a %= n; } return a == 0; } int main() { scanf("%s", s); int i; for(i = 0; s[i]; i++) t[i] = s[i] - '0'; int p = 0; for(i = 2; i <= 9; i++) if(ismod(i)) { p = 1; printf("%d ", i); } if(p == 0) printf("none"); printf("\n"); return 0; }