program SNTrutgon;
uses crt;
var a,b,d,m,n:longint;
c:array[1..10000]of longint;
function ktnt(x:longint):boolean;
var i,j:longint;
begin
ktnt:=false;
j:=0;
for i:=2 to x div 2 do
if (x mod i=0) then j:=j+1;
if (j=0) then ktnt:=true;
end;
function sntrg(y:longint):longint;
var z:longint;
begin
sntrg:=0;
if (ktnt(y)) then sntrg:=y
else
for z:=2 to y div 2 do
if ((y mod z=0)and(ktnt(z))) then sntrg:=sntrg+z;
end;
begin
clrscr;
writeln('a)');
write(' Nhap n= ');
readln(n);
writeln(' So nguyen to rut gon cua ',n,' la ',sntrg(n));
writeln('b)');
write(' Nhap a= ');
readln(a);
write(' Nhap b (b>a): ');
readln(b);
d:=0;
for m:=a to b do
if ((m<>n)or(m=n)) then
if (sntrg(m)=sntrg(n)) then
begin
d:=d+1;
c[d]:=m;
end;
if (d=0) then write(' Trong doan tu ',a,' den ',b,' khong co so nguyen nao co cung so nguyen to rut gon voi ',n)
else
begin
writeln(' Co tat ca ',d,' so co cung so nguyen to rut gon voi ',n,' la');
write(' ');
for m:=1 to d do write(c[m],' ');
end;
readln;
end.