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;
} 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章