var ar: array[0..3] of integer; digits: array[0..9] of integer; out: array[1..4, 1..7]of integer;
begin for var i := 0 to 9 do digits[i] := 0; var sum := 0; for var i := 1 to 2 do begin out[i][1] := 1053; out[i][2] := 1077; out[i][3] := 1074; out[i][4] := 1077; out[i][5] := 1088; out[i][6] := 1085; out[i][7] := 1086; end; out[4][1] := 1053; out[4][2] := 1077; out[4][3] := 1074; out[4][4] := 1077; out[4][5] := 1088; out[4][6] := 1085; out[4][7] := 1086;
out[3][1] := 1042; out[3][2] := 1077; out[3][3] := 1088; out[3][4] := 1085; out[3][5] := 1086; out[3][6] := 160; out[3][7] := 160; var num := readinteger('Введите четырехзначное число:'); ar[3] := num mod 10; ar[2] := num div 10 mod 10; ar[1] := num div 100 mod 10; ar[0] := num div 1000; for var i := 0 to 3 do digits[ar[i]] += 1; for var i := 0 to 9 do try sum += digits[i] div digits[i]; except on System.DivideByZeroException do end; for var i := 1 to 7 do write(chr(out[sum][i])); end.
Могут: – 31: для числа 111 сумма остатков равна 1+1+1=3, произведение цифр 1*1*1=1 – 813: для числа 339 произведение цифр 3*3*9=81, сумма остатков 1+1+1=3 – 7293: для числа 999 проивзедение цифр 9*9*9=729, сумма остатков 1+1+1=3
Остальные не могут. – 32: если сумма остатков 3, то все цифры нечетные, их произведение не может быть равно 2. Если сумма остатков 2, то одна из цифр четная, произведение не может быть равно 3. – 43: Сумма остатков не превышает 3, значит, 3 – сумма остатков (поэтому все цифры нечетные), тогда произведение не будет четному числу 4. – 52: сумма остатков 2, одна из цифр четная, но тогда произведение не будет равно нечетному числу 5 – 132: аналогично, сумма остатков 2, произведение должно быть четным (а оно 13) – 190: аналогично, сумма остатков 0, тогда все цифры четные, но произведение 19