Воспользуемся законом де Моргана: НЕ(А ИЛИ B) = НЕ(A) И НЕ(B) = (НЕ(сумма цифр нечетная) И НЕ(число четное)). Из этого следует, что обе скобки отрицаются, то есть значения внутри них становятся противоположными: (Сумма цифр четная) И (число нечетное). И - означает, что условие внутри обоих скобок должно быть истинно, то есть должно выполняться.
var i,j,k,m: integer; s: string; begin k:=0; for i:=1 to 1000000 do begin s:=IntToStr(i); m:=0; for j:=1 to (length(s) div 2) do if s[j]<>s[length(s)-j+1] then m:=1; if m=0 then begin inc(k); continue; end; m:=pos('0',s); if m>0 then begin inc(k); continue; end; m:=1; for j:=2 to round(sqrt(i)) do if i mod j = 0 then begin m:=0; break; end; if m=1 then inc(k); end; k:=1000000-k; writeln('осталось чисел: ',k); end.
осталось чисел: 544011
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota
Оформи подписку