洛谷-P1151 子数整数

洛谷-P1151 子数整数

原题链接:https://www.luogu.com.cn/problem/P1151


题目描述

对于一个五位数\(a_1a_2a_3a_4a_5\),可将其拆分为三个子数:

\(sub_1=a_1a_2a_3\)

\(sub_2=a_2a_3a_4\)

\(sub_3=a_3a_4a_5\)

例如,五位数\(20207\)可以拆分成

\(sub_1=202\)

\(sub_2=020(=20)\)

\(sub_3=207\)

现在给定一个正整数\(K\),要求你编程求出\(10000\)\(30000\)之间所有满足下述条件的五位数,条件是这些五位数的三个子数\(sub_1,sub_2,sub_3\)都可被\(K\)整除。

输入格式

一个正整数K

输出格式

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

输入输出样例

输入 #1

15

输出 #1

22555
25555
28555
30000

说明/提示

0<K<1000

C++代码

#include <iostream>
using namespace std;

int a[30005];

int main() {
    int k, sub1, sub2, sub3, n=0;
    cin >> k;
    for (int i=10000; i<=30000; ++i) {
        sub1 = i / 100;
        sub2 = (i - i / 10000 * 10000) / 10;
        sub3 = i - i / 1000 * 1000;
        if (sub1%k==0 && sub2%k==0 && sub3%k==0)
            a[n++] = i;
    }
    if (n == 0)
        cout << "No" << endl;
    else
        for (int i=0; i<n; ++i)
            cout << a[i] << endl;
    return 0;
}
posted @ 2021-01-30 11:40  yuzec  阅读(532)  评论(0)    收藏  举报