【题目描述】
已知正整数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>
using namespace std;
int a[101],cnt=0;
int getRemain(int k)
{
int remain=0,divide=0;
for(int i=0;i<cnt;i++)
{
divide=divide*10+a[i];
remain=divide%k;
divide=remain;
}
return remain;
}
int main()
{
string s;
bool flag=false;
cin>>s;
for(int i=0;i<s.size();i++)
{
a[i]=s[i]-'0';
cnt++;
}
for(int i=2;i<=9;i++)
{
if(getRemain(i)==0)
{
cout<<i<<" ";
flag=true;
}
}
if(!flag)
cout<<"none";
return 0;
}
标签:输出,1171,非负,int,信奥赛,30,整数,通题 From: https://www.cnblogs.com/nanshaquxinaosai/p/18403917