Почему задачу нужно решать без использования строк - понятно, а почему нельзя использовать тип boolean - загадка. С учетом пожеланий программа может быть такой: var n,k:integer; begin write('n=');readln(n); k:=0; while n>0 do begin if (n mod 10=2)or(n mod 10=5) then k:=1; n:=n div 10; end; if k=0 then writeln('В числе нет 2 и 5') else writeln('В числе есть 2 и/или 5'); end.
У вас есть число 137 если вам надо перевести его в какую-нибудь систему счисления, то нужно делить это число на номер системы, так если нужно перевести число 137 в ДВОичную ,то делим на 2 до тех пор, пока остатотк от деления не равен 1.(если в ТРОичную то на 3 и т.д.). начнём: 137 / 2 = 68 выписываем остаток (1) 68 / 2 = 34 выписываем остаток (0) 34 / 2 = 17 выписываем остаток (0) 17 / 2 = 8 выписываем остаток (1) 8 / 2 = 4 выписываем остаток (0) 4 / 2 = 2 выписываем остаток (0) 2 / 2 = 1 <== на этой единице заканчиваем деление, далее снизу вверх выписываем получившееся число : 001001; ответ: 001001
var i,j,n:longint; f:boolean; begin writeln('Введите число'); readln(n); if n<2 then writeln('Простых делителей нет') else begin write('Число ',n,' ','= 1'); for i:=2 to n do if n mod i=0 then begin f:=true; j:=2; while f and(j<=round(sqrt(i/2)))do begin if i mod j=0 then f:=false else j:=j+1; end; if f then write('*',i); end; end; end.