Создать файл из 250 целых чисел, лежащих ** отрезке [20,5000], используя генератор...

0 голосов
63 просмотров

Создать файл из 250 целых чисел, лежащих на отрезке [20,5000], используя генератор случайных чисел.
-Вывести его на экран.
-Сколько в нем чисел, кратных сумме квадратов своих цифр.
-Найти все числа, отличающиеся от наибольшего не более, чем на 50. (не знаю как доделать)

var f:file of byte;
i, n, x, t: byte;
s:real;
Begin assign (f, 'numbers.dat');
rewrite (f);
write ('n=');
readln (n);
randomize;
for i:=1 to n do
begin x:=random (4800)+20;
write(f, x);
write(x,' ');
end;
seek (f,0); s:=0;
while not eof (f) do
begin
read (f, x);
t:=x;
repeat
t:=


Информатика (68 баллов) | 63 просмотров
Дан 1 ответ
0 голосов
Правильный ответ

Var
    f: file of integer;
    i, n, x, t, k, max: integer;
    s: integer;

begin
    randomize;
    write('n=');
    readln(n);
    
    assign(f, 'numbers.dat');
    rewrite(f);
    
    max := -1;
    for i := 1 to n do
    begin
        x := random(4800) + 20;
        write(f, x);
        write(x, ' ');
        if x > max then max := x;
    end;
    writeln;
    
    seek(f, 0);
    k := 0;
    while not eof(f) do
    begin
        read(f, x);
        t := x;
        s := 0;
        while t > 0 do
        begin
            s := s + sqr(t mod 10);
            t := t div 10;
        end;
        if x mod s = 0 then k := k + 1;
        if x > max - 50 then write(x, ' ');
    end;
    writeln;
    
    writeln(k);
end.

(53.1k баллов)