Форум » Обработка целых чисел » Помогите решить задачу » Ответить

Помогите решить задачу

8utters: Среди целых чисел, принадлежащих числовому отрезку [125697;190234], найдите числа, которые представляют собой произведение двух различных простых делителей. Запишите в ответе количество таких чисел и максимальное их них. program z25; var count,max,m,maximum:integer; a:array[1..9505] of longint; begin m:=1; count:=0; maximum:=0; for i:int64:=2 to 99000 do begin var c:=0; for x:integer:=1 to i div 2 do if (i mod x = 0) then c:=c+1; if c=1 then begin a[m]:=i; m:=m+1; end; end; for w:integer:=1 to 9504 do begin for q:integer:=w+1 to 9505 do begin if (a[w]*a[q]>=125697) and (a[w]*a[q]<=190234) then begin count:=count+1; max:=a[w]*a[q]; end; if maximum<max then maximum:=max; end; end; print(count,maximum); end. Первый цикл ищет простые числа и заносит их в массив, вторая уже ищет произведения массивов в нашем интервале. После выполнения появляется ответ 14291 190231, он не правильный. Помогите, что в ней не так? Массивы вроде не повторяются по два раза, но счетчик намного больше. Буду рад :)

Ответов - 0



полная версия страницы