Простые делители


Задача:

  Программа запрашивает число n у пользователя и выводит на экран все его простые делители и их сумму.

Описание:

  Воспользуемся кодом программы "Простые числа" немного усложнив его. 8)


Код:


program prosto_deliteli;
uses crt;
var n,i,symma,k,pdel:integer;
    P, Code : Integer;
    Str: string;
    yn:string;
Begin
clrscr;
repeat
 symma:=0;
 pdel:=0;
  repeat
   Write('Введите n: ');
   Readln(str);
   Val(Str, p, Code);
   if Code<>0 then Writeln('Неправильный ввод! Ошибка в позиции: ',Code) Else Writeln('Ok!');
  until Code = 0;
 n:=P;
 for i:=2 to n do begin
                  if n mod i = 0 then begin    {если делитель}
                    for k:=2 to i do begin      {проверяем простой ли он}
                    if i mod k = 0 then pdel:=pdel+1;
                                     end;
                    if pdel=1 then symma:=symma+i;   {т.е. у него 1 делитель(он сам)}
                    if pdel=1 then Write(i,' ');
                                     pdel:=0;
                                     end;
                 end;
Writeln;
Writeln(symma);
Write('Ещё раз(y/n)? ');
Readln(yn);
until yn='n';
End.




Hosted by uCoz