子数整数
题目描述
对于一个五位数 a 1 a 2 a 3 a 4 a 5 ‾ \overline{a_1a_2a_3a_4a_5} a1a2a3a4a5,可将其拆分为三个子数:
s u b 1 = a 1 a 2 a 3 ‾ sub_1=\overline{a_1a_2a_3} sub1=a1a2a3
s u b 2 = a 2 a 3 a 4 ‾ sub_2=\overline{a_2a_3a_4} sub2=a2a3a4
s u b 3 = a 3 a 4 a 5 ‾ sub_3=\overline{a_3a_4a_5} sub3=a3a4a5
例如,五位数 20207 20207 20207 可以拆分成
s u b 1 = 202 sub_1=202 sub1=202
s u b 2 = 020 ( = 20 ) sub_2=020\ (=20) sub2=020 (=20)
s u b 3 = 207 sub_3=207 sub3=207
现在给定一个正整数 K K K,要求你编程求出 10000 10000 10000 到 30000 30000 30000 之间所有满足下述条件的五位数,条件是这些五位数的三个子数 s u b 1 , s u b 2 , s u b 3 sub_1,sub_2,sub_3 sub1,sub2,sub3 都可被 K K K 整除。
输入格式
一个正整数 K K K。
输出格式
每一行为一个满足条件的五位数,要求从小到大输出。不得重复输出或遗漏。如果无解,则输出 No
。
样例 #1
样例输入 #1
15
样例输出 #1
22555
25555
28555
30000
提示
0 < K < 1000 0<K<1000 0<K<1000
// #include <iostream>
// #include <algorithm>
// #include <cstring>
// #include <stack>//栈
// #include <deque>//队列
// #include <queue>//堆/优先队列
// #include <map>//映射/* */
// #include <unordered_map>//哈希表
// #include <vector>//容器,存数组的数,表数组的长度
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
int main()
{
ll k,f=0;
cin>>k;
for(ll i=10000;i<=30000;i++)
{
if(i/100%k==0)//判断1到3位
{
if((i/10-i/10000*1000)%k==0)//判断2到4位
{
if((i-i/1000*1000)%k==0)//判断2到5位
{
cout<<i<<endl;
f=1;
}
}
}
}
if(!f) cout<<"No"<<endl;
return 0;
}