Pascal, не понимаю, почему компилятор выдает ошибку текст задачи в принципе не нужен, а программа вот: var k,i,f,a,n,b:real; begin readln(n); k:=0; a:=0; repeat b:=n div 10; a:=a+1; until b=0; a:=power(10,a); for i:=1 to n-1 do begin a:=a/10; f:=n mod a; if (f/i)=0 then k:=k+1; end; if k=0 then writeln ('простое')else writeln('net'); end. компилятор выдает ошибку "нельзя преобразовать тип real в integer" в строке b:=n div 10; ЧТО С НЕЙ НЕ ТАК АААААААА спасибо
Проблема заключается в том, что операторы деления и взятия остатка от деления (/ и mod) применяются только к целым числам, а не к вещественным. Поэтому в данном случае вам нужно использовать целочисленное деление (div) и целочисленный остаток от деления (mod).
Измените строку:
b:=n div 10;
на:
b:=Trunc(n / 10);
Trunc() - это функция, которая округляет вещественное число до ближайшего целого. В данном случае она приведет результат деления n на 10 к целому числу.
После этого ваш код должен скомпилироваться без ошибок.
Проблема заключается в том, что операторы деления и взятия остатка от деления (/ и mod) применяются только к целым числам, а не к вещественным. Поэтому в данном случае вам нужно использовать целочисленное деление (div) и целочисленный остаток от деления (mod).
Измените строку:
b:=n div 10;
на:
b:=Trunc(n / 10);
Trunc() - это функция, которая округляет вещественное число до ближайшего целого. В данном случае она приведет результат деления n на 10 к целому числу.
После этого ваш код должен скомпилироваться без ошибок.