1171:大整数的因子

http://ybt.ssoier.cn:8088/problem_show.php?pid=1171
1171:大整数的因子

时间限制: 1000 ms 内存限制: 65536 KB
提交数: 5610 通过数: 3261
【题目描述】
已知正整数k满足2≤k≤9,现给出长度最大为30位的十进制非负整数c,求所有能整除c的k。

【输入】
一个非负整数c,c的位数≤30。

【输出】
若存在满足 c%k == 0 的k,从小到大输出所有这样的k,相邻两个数之间用单个空格隔开;若没有这样的k,则输出"none"。

【输入样例】
30
【输出样例】
2 3 5 6

#include<bits/stdc++.h>
using namespace std;
char a1[110];
int a[110], lena, i, res[110], s;//res[110]存储每一位商 s表示余数 
bool flag = false;
int main()
{
	memset(a, 0, sizeof(a));
	gets(a1);
	lena=strlen(a1);
	for(i=0; i<lena; i++)
		a[i]=a1[i]-'0';
	for(int k=2; k<=9; k++){
		s=a[0];//将余数初始化 
		for(i=1; i<lena; i++)//for循环输出找到每一位商,和最后的余数 
		{
			int aa=s*10+a[i];//aa表示除数 
			res[i]=aa/k;//取得商 
			s=aa%k;//取得余数 
		}
		if(s == 0){
			cout << k << " ";
			flag = true;
		}	
	}
	if(flag == false)
		cout << "none";
	return 0;
} 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章