Есть ответ 👍

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

245
500
Посмотреть ответы 3

Ответы на вопрос:


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 = 289yes, 17 * 17 = 289пример 2: a = 250no

Из известно, что квадрат любого числа 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

Пусть x - количество команд "назад 2". тогда количество команд "вперед 3" = x-10. x + (x-10) = 40  ⇒ 2x = 50  ⇒ x = 25 -25*2 + 15*3 = -50+45 = -5 ответ: выполненную программу можно заменить на команду "назад 5"

Популярно: Информатика