2016东莞市特长生考试 子数整数
Time Limit:10000MS Memory Limit:256000K
Total Submit:4 Accepted:3
Case Time Limit:1000MS
Description
对于一个五位数 a1a2a3a4a5,可将其拆分为三个子数: sub1=a1a2a3
sub2=a2a3a4
sub3=a3a4a5
例如,五位数 20207 可以拆分成 sub1=202
sub2=020(=20) sub3=207
现在给定一个正整数 K,要求你编程求出 10000(包括 10000)到 30000(包括 30000)之间所有满足下述条件的五位数,条件是这些五位数的三个子数 sub1,sub2,sub3 都可被 K 整除。
Input
从文件 num.in 输入,输入仅一行,为正整数 K(0
Output
输出到文件 num.out,输出文件的每一行为一个满足条件的五位数,要求从小到大输出。不得重复输出或遗漏。如果无解,则输出“-1”。
Sample Input
15
Sample Output
22555
25555
28555
30000
做法:利用 mod 和 div 取sub即可
代码如下:
var
k,i:longint;
b:boolean;
begin
assign(input,'num.in');reset(input);
assign(output,'num.out');rewrite(output);
readln(k);
for i:=10000 to 30000 do
begin
if (i div 100) mod k=0 then
if ((i div 10) mod 1000) mod k=0 then
if (i mod 1000) mod k=0 then begin writeln(i); b:=true; end;
end;
if not b then writeln(-1);
close(input); close(output);
end.