Составить программу REBUS, которая определяет все 4-значные числа на интервале [M, N], удовлетворяющие условиям: a) abcd - 4-цифровое число; b) a, b, c, d - разные цифры; c) ad - cd = a + b + c + d; и подсчитывает общее количество этих чисел.
Ответы
На Паскале например такая программа это сделает:
program REBUS;
var
M,N,S,a,b,c,d,i: integer;
begin
Write('M= ');
Read(M);
Write('N= ');
Read(N);
S:=0;
for i:=M to N do
if (i>999) and (i<10000) then
begin
a := i div 1000;
b := (i div 100) mod 10;
c := (i div 10) mod 10;
d := i mod 10;
if (a<>b) and (a<>c) and (a<>d) and (b<>c) and (b<>d) and (c<>d) then
if a*d - c*d = a + b + c + d then
S:=S+1;
end;
Write('S= ',S);
end.
Кстати, во всём диапазоне 4-значных чисел под эти критерии подходят всего 58 штук. И, вот они все:
2103; 2305; 2406; 2507; 2608; 2709; 3014; 3102; 3216; 3418; 3504; 3519; 3705; 3906; 4026; 4127; 4329; 4503; 4716; 4917; 5012; 5038; 5124; 5139; 5302; 5614; 5703; 5928; 6123; 6135; 6402; 6513; 6537; 6725; 6738; 6903; 6914; 7146; 7234; 7502; 7548; 7836; 8157; 8312; 8345; 8523; 8534; 8602; 8913; 8935; 8947; 9168; 9412; 9456; 9702; 9723; 9745; 9834