P1151 子数整数

题目描述

对于一个五位数a_1a_2a_3a_4a_5a1​a2​a3​a4​a5​,可将其拆分为三个子数:

sub_1=a_1a_2a_3sub1​=a1​a2​a3​

sub_2=a_2a_3a_4sub2​=a2​a3​a4​

sub_3=a_3a_4a_5sub3​=a3​a4​a5​

例如,五位数2020720207可以拆分成

sub_1=202sub1​=202

sub_2=020(=20)sub2​=020(=20)

sub_3=207sub3​=207

现在给定一个正整数KK,要求你编程求出1000010000到3000030000之间所有满足下述条件的五位数,条件是这些五位数的三个子数sub_1,sub_2,sub_3sub1​,sub2​,sub3​都可被KK整除。

输入格式

一个正整数K

输出格式

每一行为一个满足条件的五位数,要求从小到大输出。不得重复输出或遗漏。如果无解,则输出“No”。

输入输出样例

输入 #1

15

输出 #1

22555
25555
28555
30000

说明/提示

0<K<10000<K<1000

 

#include <iostream>
#include <string>
#include <unordered_map>
#include <vector>
#include <algorithm>

using namespace std;

int main(int argc, char const *argv[])
{
	/* code */
	int k;
	cin>>k;
	int flag = 0;
	for (int i = 10000; i <= 30000; ++i)
	{
		/* code */
		string tmp = to_string(i);
		int num1 = stoi(tmp.substr(0,3));
		int num2 = stoi(tmp.substr(1,3));
		int num3 = stoi(tmp.substr(2,3));
		if((num1 % k == 0) && (num2 % k == 0) && (num3 % k == 0))
		{
			flag = 1;
			cout<<i<<endl;
		}	
	}
	if(flag == 0)
		cout<<"No"<<endl;

	return 0;
}

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值