Написать программу в паскале вводим число, проверить извлекается из него корень?

Написать программу в паскале вводим число, проверить извлекается из него корень?
Гость
Ответ(ы) на вопрос:
Гость
var a,b:integer; begin write('a = '); readln(a); b:=round(sqrt(a)); if b*b=a  then writeln('Yes, ',b,' * ',b,' = ',a)  else writeln('No'); end. Пример 1: a = 289 Yes, 17 * 17 = 289 Пример 2: a = 250 No
Гость
Из математики известно, что квадрат любого числа n можно представить в виде суммы арифметической прогрессии вида 1+3+5+...+2n-1 Следовательно, достаточно последовательно вычислять сумму членов этой прогрессии до тех пор, пока либо не получим значение заданного числа (и тогда это количество и есть точное значение корня), либо квадрат количества членов накопленной суммы не превысит исходного числа (и тогда корень в целых числах не извлекается). Программа на языке Паскаль (Free Pascal/Lazarus, Borland Delphi, PascalABC.Net, Pascal ABC). !!! Гарантируется правильная работа программы при вводе натуральных чисел, не превышающих 9 223 372 030 926 249 001 var   i,n,m:int64; begin   Write('Вводите: ');   Read(m);   n:=0;   for i:=1 to m div 2 do     begin       n:=n+2*i-1;       if (n>=m) then break     end;   if n=m then Writeln('Кв.корень(',m,')=',i)   else Writeln('Кв.корень(',m,') не является целочисленным') end. Примеры работы программы Вводите: 255240500157504 Кв.корень(255240500157504)=15976248 Вводите: 225 Кв.корень(225)=15 Вводите: 56846356333463 Кв.корень(56846356333463) не является целочисленным Вводите: 9223372030926249001 Кв.корень(9223372030926249001)=3037000499
Не нашли ответ?
Ответить на вопрос
Похожие вопросы