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.
/*Твой код написан на С++, поэтому я так понимаю, что ответ нужен также на нём.*/
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <string>
#define SIZE 256
int main() {
const char* DELIMITERS = "_.,;:\n\t!?";
char S[SIZE] = "Hello, my2. friend_ia2m?hh2";
char* ptr = 0;
ptr = strtok(S, DELIMITERS);
while (ptr) {
for (int i = 0; i < strlen(ptr); i++) {
if (isdigit(ptr[i]))
std::cout << ptr << "\n";
}
ptr = strtok(0, DELIMITERS);
}
return 0;
}
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.
Тестовое решение:
Введите число
2345
Число 2345 = 1*5*7*35*67