var simple: List<integer> := new List<integer>; i, n, p: integer; m: longint;
begin read(n); for i := 2 to n do begin m := 1; foreach s: integer in simple do m := m * i mod s; if m > 0 then begin simple.Add(i); // write(i, ' '); end; end; writeln();
foreach s: integer in simple do begin if Math.Pow(2, s) - 1 <= longint.MaxValue then begin m := round(Math.Pow(2, s) - 1); if (m <= n) and simple.Contains(m) then write(m, ' '); end; end; end.
Program primer; Var f,g:text; I,n,k: integer; S,a,data: string; Begin Assign(f,'F.txt'); Assign(g,'G.txt'); rewrite(f); Writeln('Кол-во книг? '); readln(n); for i:=1 to n do begin writeln('Фамилия автора, название и год издания книги № ',i,' ?'); readln(s); writeln(f,s); // в фаил f забиваем данные end; close(f); Writeln('Укажите автора для поиска '); readln(a); Rewrite(g); Reset(f); For i:=1 to 2 do begin Readln(f,s); if (pos(a,s)<>0) then begin //ищем автора data:=''; for k:=length(s) downto 1 do begin if (s[k]=' ') then begin data:=data+copy(s,k+1,length(s)); //смотрим дату break; end; end; end; if (strtoint(data) >= 1980) then writeln(g,s); //сравниваем дату end; close(f); close(g); end. ABC Pascal
System.Collections.Generic,
System;
var
simple: List<integer> := new List<integer>;
i, n, p: integer;
m: longint;
begin
read(n);
for i := 2 to n do
begin
m := 1;
foreach s: integer in simple do
m := m * i mod s;
if m > 0 then begin
simple.Add(i);
// write(i, ' ');
end;
end;
writeln();
foreach s: integer in simple do
begin
if Math.Pow(2, s) - 1 <= longint.MaxValue then begin
m := round(Math.Pow(2, s) - 1);
if (m <= n) and simple.Contains(m) then
write(m, ' ');
end;
end;
end.