时间限制: 1000 ms 内存限制: 65536 KB
提交数: 14210 通过数: 8260
已知正整数kk满足2≤k≤9,现给出长度最大为30位的十进制非负整数c,求所有能整除c的k。
一个非负整数c,c的位数≤30。
若存在满足 c%k == 0 的k,从小到大输出所有这样的k,相邻两个数之间用单个空格隔开;若没有这样的k,则输出"none"。
30
2 3 5 6
第一种:用字符串表示数(太大了,整形不行了),然后从第一位(高位)开始%从2开始到9的数,最后没余的能整除,输出就行了呢
#include#include #include using namespace std; int main() { int i,j,k,sum=0,m,flag=0; char a[40]; scanf("%s",a);//输入字符串,就是那个大整数 for(i=2;i<=9;i++)//从2开始做除数,看能不能整除 { k=strlen(a);//串的长度 sum=0;//整除位 for(j=0;j