Problems
给定一个正整数𝑛(1<𝑛<1^{9})n(1<n<1^{9}),判断是否存在自然数𝑎,𝑏,𝑐c满足𝑎×1234567+𝑏×123456+𝑐×1234=𝑛
Answer
因数据不大,可以暴力枚举𝑎和𝑏(𝑐就不用了,𝑎和𝑏知道了,𝑐是可以算出来的)。
确定𝑎的枚举范围:109÷1234567≈100109÷1234567≈100;
𝑏的枚举范围:109÷123456≈1000109÷123456≈1000。
然后就可以枚举啦~
但是这里要注意一点:a和b的枚举初值应该是00。
Code
var
n:int64;
a,b:longint;
begin
readln(n);
for a:=0 to 100 do for b:=0 to 1000 do//从0开始
if n>=a*1234567+b*123456 then//判断是否比n要小
if (n-a*1234567-b*123456) mod 1234=0 then//如果可以整除
begin
writeln('YES');exit;//说明有方案,退出
end;
writeln('NO');//无方案
end.