Форум » Обработка целых чисел » 25 » Ответить

25

Кэйт: Среди целых чисел, принадлежащих числовому отрезку [351627;428763], найдите числа, которые представляют собой произведение двух различных простых делителей. Запишите в ответе количество таких чисел и их среднее арифметическое. Для среднего арифметического запишите только целую часть числа. Как сделать произведение двух различных простых делителей помогите пожалуйста Вот начало var sr,n:integer; function(x:intefer):integer; p:integer; begin f:=0; for p:= 2 to x div 2 do begin if (x mod p)=0 then begin f:=1; break; end; end; end; begin for i:=351627 to 428763 do begin for j:= 1 to i do begin if (i mod j =0) and (f(j)=0) then

Ответов - 2

Поляков: Кэйт пишет: Как сделать произведение двух различных простых делителей Вариант 1. Перебираем делители. Нашли простой - проверили парный ему. Если и парный простой, то посчитали. Вариант 2. Составили список всех простых чисел до половины максимального. При переборе проверяем только делители из этого списка. Если нашли такой делитель и парный ему тоже есть в списке простых, то посчитали.

Кэйт: var i,k,j,d,s,e,m:longint; function f(n:integer):integer; var q:integer; begin f:=0; for q:=2 to round(sqrt(n)) do begin if (n mod q = 0) then begin f:=1; break; end; end; end; begin s:=0; k:=0; for i:=351627 to 428763 do begin e:=0; d:=0; for j:=2 to round(sqrt(i)) do begin if(round(sqrt(i))<>sqrt(i)) and(i mod j =0)then d:=1; end; if d=1 then begin if (f(j)=1) and (f(i mod j)=1) then begin k:=k+1; s:=s+i end; end; end; writeln(k,' ',s div k); end.



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