题目描述
对于一个五位数a1a2a3a4a5,可将其拆分为三个子数:
sub1=a1a2a3
sub2=a2a3a4
sub3=a3a4a5
例如,五位数20207可以拆分成
sub1=202
sub2=020(=20)
sub3=207
现在给定一个正整数K,要求你编程求出10000到30000之间所有满足下述条件的五位数,条件是这些五位数的三个子数sub1,sub2,sub3都可被K整除。
输入输出格式
输入格式:
输入由键盘输入,输入仅一行,为正整数K
输出格式:
输出到文件,输出文件的每一行为一个满足条件的五位数,要求从小到大输出。不得重复输出或遗漏。如果无解,则输出“No”。
输入输出样例
输入样例#1:
15
输出样例#1:
22555
25555
28555
30000
说明
0
代码
#include<iostream>
using namespace std;
int main()
{
int k,t=0,a,b,c,d,e,s1,s2,s3;
cin>>k;
for(int i=10000;i<=30000;i++)
{
a=i/10000;
b=(i-a*10000)/1000;
c=(i-a*10000-b*1000)/100;
d=(i-a*10000-b*1000-c*100)/10;
e=i%10;
s1=a*100+b*10+c;
s2=b*100+c*10+d;
s3=c*100+d*10+e;
if (s1%k==0&&s2%k==0&&s3%k==0)
{
printf ("%d\n",i);
t++;
}
}
if(t==0)cout<<"No";
return 0;
}