Написать программу в паскале вводим число, проверить извлекается из него корень?
245
500
Ответы на вопрос:
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"
Популярно: Информатика
-
lizavettta88831.01.2022 11:49
-
hunateВадим282785424.06.2021 21:42
-
anya290911.06.2022 07:15
-
Аминишка20.05.2020 16:56
-
Temok0418.04.2021 08:48
-
ChristmasNastya26.05.2021 10:33
-
anton27014.04.2023 19:17
-
фирдавс627.01.2020 11:28
-
WOWCAT29198103.05.2020 06:42
-
AwesomeLeva17.05.2023 08:38