Integer roots: Difference between revisions
Content added Content deleted
Drkameleon (talk | contribs) |
|||
Line 668: | Line 668: | ||
ReadChar |
ReadChar |
||
END IntegerRoot.</lang> |
END IntegerRoot.</lang> |
||
=={{header|Nim}}== |
|||
{{trans|Kotlin}} |
|||
{{libheader|bignum}} |
|||
<lang Nim>import bignum |
|||
proc root(x: Int; n: int): Int = |
|||
if x < 2: return x |
|||
let n1 = (n - 1).culong |
|||
var c = newInt(1) |
|||
var d = (n1 + x) div n |
|||
var e = (n1 * d + x div d.pow(n1)) div n |
|||
while c != d and c != e: |
|||
c = d |
|||
d = e |
|||
e = (n1 * e + x div e.pow(n1)) div n |
|||
result = if d < e: d else: e |
|||
var x: Int |
|||
x = newInt(8) |
|||
echo "3rd integer root of 8 = ", x.root(3) |
|||
x = newInt(9) |
|||
echo "3rd integer root of 9 = ", x.root(3) |
|||
x = newInt(100).pow(2000) * newInt(2) |
|||
echo "First 2001 digits of the square root of 2:" |
|||
let s = $x.root(2) |
|||
for i in countup(0, s.high, 87): echo s.substr(i, i + 86)</lang> |
|||
{{out}} |
|||
<pre>3rd integer root of 8 = 2 |
|||
3rd integer root of 9 = 2 |
|||
First 2001 digits of the square root of 2: |
|||
141421356237309504880168872420969807856967187537694807317667973799073247846210703885038 |
|||
753432764157273501384623091229702492483605585073721264412149709993583141322266592750559 |
|||
275579995050115278206057147010955997160597027453459686201472851741864088919860955232923 |
|||
048430871432145083976260362799525140798968725339654633180882964062061525835239505474575 |
|||
028775996172983557522033753185701135437460340849884716038689997069900481503054402779031 |
|||
645424782306849293691862158057846311159666871301301561856898723723528850926486124949771 |
|||
542183342042856860601468247207714358548741556570696776537202264854470158588016207584749 |
|||
226572260020855844665214583988939443709265918003113882464681570826301005948587040031864 |
|||
803421948972782906410450726368813137398552561173220402450912277002269411275736272804957 |
|||
381089675040183698683684507257993647290607629969413804756548237289971803268024744206292 |
|||
691248590521810044598421505911202494413417285314781058036033710773091828693147101711116 |
|||
839165817268894197587165821521282295184884720896946338628915628827659526351405422676532 |
|||
396946175112916024087155101351504553812875600526314680171274026539694702403005174953188 |
|||
629256313851881634780015693691768818523786840522878376293892143006558695686859645951555 |
|||
016447245098368960368873231143894155766510408839142923381132060524336294853170499157717 |
|||
562285497414389991880217624309652065642118273167262575395947172559346372386322614827426 |
|||
222086711558395999265211762526989175409881593486400834570851814722318142040704265090565 |
|||
323333984364578657967965192672923998753666172159825788602633636178274959942194037777536 |
|||
814262177387991945513972312740668983299898953867288228563786977496625199665835257761989 |
|||
393228453447356947949629521688914854925389047558288345260965240965428893945386466257449 |
|||
275563819644103169798330618520193793849400571563337205480685405758679996701213722394758 |
|||
214263065851322174088323829472876173936474678374319600015921888073478576172522118674904 |
|||
249773669292073110963697216089337086611567345853348332952546758516447107578486024636008</pre> |
|||
=={{header|PARI/GP}}== |
=={{header|PARI/GP}}== |