Составьте программу, определяющую, можно ли представить данное натуральное число М в виде произведения двух простых сомножителей. (Pascal ABC) - вопрос №1298895

Ответы

Здравствуйте, Евгения.

Код Pascal:

uses crt;<br //функция логического типа, определяет простое ли число<br function Pros(n:integer):boolean;<br var i:integer;<br f:boolean;<br begin<br if nelse//иначе<br begin<br f:=true; //предположим что плстое<br i:=2;//начнем делить на все, начиная с 2<br while(i*i<=n)and f do //пока делитель не больше корня из числа и не делится<br if n mod i=0 then f:=false //ксли делится-составное<br else i:=i+1;//иначе проверяем следующее<br end;<br Pros:=f;//значение функции<br end;<br var m,n:integer;<br f:boolean;<br c:char;<br begin<br repeat<br clrscr;<br repeat<br write('Введите натуральное число M=');<br readln(m);<br until m>0; //вводим натуральное число, 0 не считаем, он спорно относится к натуральным<br if melse //если 4 или больше<br begin<br f:=false; //предположим что нельзя<br n:=2;//начнем с 2<br while(n<=m div n)and(n*(m div n)=m)and not f do //пока первое число не больше данного<br if Pros(n)and(pros(m div n)) then//если простое и простое их<br begin<br f:=true;//возможно<br writeln(m,'=',n,'*',m div n)//выводим их<br end<br else n:=n+1;//иначе наращиваем n<br end;<br if not f then writeln('Число M не представимо в виде произведения двух простых чисел');<br writeln('Повторить Y/y-да, другое-нет');//предлагаем повторить<br readln©;<br until UpCase©<>'Y'<br end.<br <br <span style="text-decoration: underline;"><strong>К сожалению код нормально сюда не вставляется...</strong></span>

 

Залью текстовым файлом на Яндекс Диск



Если будут какие еще лабы или задачки пишите сделаю не дорого.
изображение из вопроса

17.12.14

Глеб Черняк

Сейчас на сайте
Читать ответы

Олег Николаевич

Читать ответы

Георгий

Читать ответы
Посмотреть всех экспертов из раздела Технологии
Пользуйтесь нашим приложением Доступно на Google Play Загрузите в App Store