大整数的因子
时间限制: 1000 ms 内存限制: 65536 KB
提交数: 168 通过数: 98
【题目描述】
已知正整数k满足2<=k<=9,现给出长度最大为30位的十进制非负整数c,求所有能整除c的k。
【输入】
一个非负整数c,c的位数<=30。
【输出】
若存在满足 c%k == 0 的k,从小到大输出所有这样的k,相邻两个数之间用单个空格隔开;若没有这样的k,则输出"none"。
【输入样例】
30
【输出样例】
2 3 5 6
【来源】
【代码】
#include
int main(void)
{
int i,k,n,count;
while(scanf("%d",&n)!=EOF)
{
count=1;
int a[200000]={0};//用来存放即如果的数组,先初始化为0
a[0]=1;//将第一个数字置为1
for(k=1;k<=n;k++)
{
for(i=0;i
=10)
{
a[i+1]=a[i+1]+a[i]/10;//如果数字大于10,则进位
if(i+1==count)
count++;//记录位数
a[i]=a[i]%10;//进位过后的余数
}
}
for(i=count-1;i>=0;i--)//倒序输出
printf("%d",a[i]);
printf("\n");
}
return 0;
}
【说明】
vc6.0运行成功,提交通过