Const k=10; type arr=array[1..k] of integer; procedure p1(var x:arr); var i:integer; begin for i:=1 to k do begin x[i]:=random(30)-15; write(x[i]:3); end; writeln; end; function f1(var x:arr):integer; var i,s:integer; begin s:=0; for i:=1 to k do if x[i]<0 then s:=s+x[i]*x[i]; f1:=s; end; var a,b:arr; m,n:integer; x:real; begin writeln('a:'); p1(a); writeln('b:'); p1(b); m:=f1(a); n:=f1(b); writeln('m = ',m,' n = ',n); x:=m/(n-m); writeln('x = ',x:6:4); end.
Пример: a: -13 7-11 11 -3 4 13 3 -1 2 b: 8 -2 5 10 9 8 -8 12 7-13 m = 300 n = 237 x = -4.7619
Вычислим остатки от деления обоих чисел на 9, для этого заметив, что у числа 10a + c такой же остаток, что и у a + c. Тогда можно, считывая цифру за цифрой, получить остаток для всего числа. Дальше проверяем, чем равно произведение остатков: если делится на 9, то произведение делится на 9, иначе не делится.
function mod9(f: text): integer; var c: char; rem: integer; begin rem := 0; while not eoln(f) do begin read(f, c); rem := (rem + ord(c) - ord('0')) mod 9; end; readln(f); mod9 := rem; end;
var f: text; a: integer;
begin assign(f, 'input.txt'); reset(f); a := mod9(f) * mod9(f); close(f); assign(f, 'output.txt'); rewrite(f); writeln(f, a); if a mod 9 = 0 then write(f, 'YES') else write(f, 'NO'); close(f); end.
for i in range(10, 99):
if (i % 5 == 0) and (i % 7 == 0 ):
print(i)
На выходе получаем: 35 , 70