07.09.2017, 13:25 | #1 (permalink) |
Новичок
Регистрация: 07.09.2017
Сообщений: 2
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Программа на Pascal
|
07.09.2017, 13:25 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Программа на Pascal Программа на Pascal |
07.09.2017, 13:27 | #2 (permalink) | |
Новичок
Регистрация: 07.09.2017
Сообщений: 2
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Цитата:
Program DOLG; var a,b:real; begin write('Введите число '); readln(a); b:=sqrt(a); if frac(b)=0 then writeln('Можно',a,' представить в виде квадрата простого числа') else writeln('Нельзя',a,' представить в виде квадрата простого числа'); end. |
|
07.09.2017, 14:17 | #3 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Так, ну, во-первых, не нужно лезть в чужие темы. Создавайте свои под свои задачи.
Во-вторых, Вы проверили только то, что вводимое число есть квадрат ЦЕЛОГО числа, а в задаче требуется ещё и убедиться в том, что это целое число — простое. Вот, как вариант решения: Код:
Program DOLG; Var a:LongInt; b:real; Function Test(J:LongInt):Boolean; Var m:LongInt; b:Boolean; begin m:=(J div 2)+1; b:=true; Repeat Dec(m); If (J mod m)=0 then b:=false; Until (b=false) or (m=2); Test:=b; end; Begin write('Enter the number '); readln(a); b:=sqrt(1.0*a); if (frac(b)=0) and (Test(Round(b))) then writeln(a,' is a square of prime ',Round(b)) else writeln(a,' is not a square of prime'); Readln end. Функция Test проверяет, является ли число простым. Программа написана на Free Pascal. Если у Вас Pascal ABC, то замените LongInt на Integer. |
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
|
|