题目描述
已知正整数k满足2≤k≤9,现给出长度最大为30位的十进制非负整数c,求所有能整除c的k。
输入
一个非负整数c,c的位数≤30。
输出
若存在满足 c%k == 0 的k,从小到大输出所有这样的k,相邻两个数之间用单个空格隔开;若没有这样的k,则输出"none"。
样例输入
30
样例输出
2 3 5 6
#include<iostream>
#include<cstring>
#include<cmath>
using namespace std;
char s[31];
bool flag=0;
long long int temp;
int main(){
int k,j;
cin>>s;
j=0;
temp=0;
for(int i=strlen(s)-1;i>=0;i--){
temp=temp+(s[i]-'0')*pow(10,j);
j++;
}
for(k=2;k<=9;k++){
if(temp%k==0){
printf("%d ",k);
flag=1;
}
}
if(flag==0)
printf("none\n");
return 0;
}