Задания
Версия для печати и копирования в MS Word

На­пи­ши­те про­грам­му, ко­то­рая ищет среди целых чисел, при­над­ле­жа­щих чис­ло­во­му от­рез­ку [201455; 201470], числа, име­ю­щие ровно 4 раз­лич­ных на­ту­раль­ных де­ли­те­ля. Вы­ве­ди­те эти че­ты­ре де­ли­те­ля для каж­до­го най­ден­но­го числа в по­ряд­ке воз­рас­та­ния.

 

Ответ:

Спрятать решение

Ре­ше­ние.

Решим за­да­чу пе­ре­бо­ром. Будем про­ве­рять ко­ли­че­ство де­ли­те­лей каж­до­го числа из диа­па­зо­на. По­сколь­ку не­об­хо­ди­мо найти 4 де­ли­те­ля, то будем ис­поль­зо­вать мас­сив из 4 эле­мен­тов. В слу­чае на­хож­де­ния 4 де­ли­те­лей вы­во­дим эти числа на экран.

 

При­ведём ре­ше­ние на языке Pascal.

var n, count, d, i: longint;

divs: array[1..4] of longint;

begin

for n:=201455 to 201470 do begin

count := 0;

for d:=1 to n do

if n mod d = 0 then begin

count := count + 1;

if count <= 4 then

divs[count] := d

else break

end;

if count = 4 then begin

for i:=1 to 4 do

write(divs[i], ' ');

writeln

end

end

end.

 

При­ведём ре­ше­ние на языке Python.

for i in range(201455, 201471):

s=[1, i]

for d in range (2, round(i**(0.5))):

if i%d==0:

s.append(d)

s.append(i//d)

if len(s)>4:

break

if len(s)==4:

print(sorted(s))

 

 

В ре­зуль­та­те ра­бо­ты про­грам­ма долж­на вы­ве­сти сле­ду­ю­щее:

1 3 67153 201459

1 13 15497 201461

1 29 6947 201463

1 2 100733 201466

Раздел кодификатора ФИПИ: