// PascalABC.NET 3.2, сборка 1381 от 04.02.2017 // Внимание! Если программа не работает, обновите версию!
begin var s:set of integer:=[]; for var i:=1 to 254 do begin var flag:=True; var j:=2; var r:=round(sqrt(i)); while flag and (j<=r) do if i mod j = 0 then flag:=false else j+=1; if flag then if i mod 4=3 then s+=[i] end; foreach var x in s do Print(x); end.
Так как, английский язык знают 28 участников, из них 8 знают и английский, и немецкий, и 10 и английский, и французский. И 3 знают все три языка. Следовательно только английский знают 28-8-10-3=7 участников. Также с немецким и французским. Получается немецкий знают 14 участников и французский знают 24 участника. После мы складываем все значения: 7(знают только английский)+10(знают и английский и французский)+3(знают все три)+8(английский и немецкий)+24(только французский)+5(французский и немецкий)+14(немецкий)=71
После от 120 отнимаем 71, и получаем 49 участников которые не знают ни одного из трех названных языков.
// Внимание! Если программа не работает, обновите версию!
begin
var s:set of integer:=[];
for var i:=1 to 254 do begin
var flag:=True;
var j:=2;
var r:=round(sqrt(i));
while flag and (j<=r) do
if i mod j = 0 then flag:=false
else j+=1;
if flag then
if i mod 4=3 then s+=[i]
end;
foreach var x in s do Print(x);
end.
Результат
83 79 167 163 251 71 67 151 239 59 139 227 47 223 43 131 127 211 31 23 199 19 107 103 191 11 7 3 179
49
Так как, английский язык знают 28 участников, из них 8 знают и английский, и немецкий, и 10 и английский, и французский. И 3 знают все три языка. Следовательно только английский знают 28-8-10-3=7 участников. Также с немецким и французским. Получается немецкий знают 14 участников и французский знают 24 участника. После мы складываем все значения: 7(знают только английский)+10(знают и английский и французский)+3(знают все три)+8(английский и немецкий)+24(только французский)+5(французский и немецкий)+14(немецкий)=71
После от 120 отнимаем 71, и получаем 49 участников которые не знают ни одного из трех названных языков.