Jump to content

Isqrt (integer square root) of X: Difference between revisions

(Added Fortran solution candidate)
Line 1,670:
ISQRT.(7^11) = 44467
ISQRT.(7^12) = 117649</pre>
 
=={{header|Mathematica}}/{{header|Wolfram Language}}==
<lang Mathematica>ClearAll[ISqrt]
ISqrt[x_Integer?NonNegative] := Module[{q = 1, z, r, t},
While[q <= x,
q *= 4
];
z = x;
r = 0;
While[q > 1,
q = Quotient[q, 4];
t = z - r - q;
r /= 2;
If[t >= 0,
z = t;
r += q
];
];
r
]
ISqrt /@ Range[65]
Column[ISqrt /@ (7^Range[1, 73])]</lang>
{{out}}
<pre>{1,1,1,2,2,2,2,2,3,3,3,3,3,3,3,4,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,6,6,6,6,6,6,6,6,6,6,6,6,6,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,8,8}
2
7
18
49
129
343
907
2401
6352
16807
44467
117649
311269
823543
2178889
5764801
15252229
40353607
106765608
282475249
747359260
1977326743
5231514822
13841287201
36620603758
96889010407
256344226312
678223072849
1794409584184
4747561509943
12560867089291
33232930569601
87926069625040
232630513987207
615482487375282
1628413597910449
4308377411626977
11398895185373143
30158641881388842
79792266297612001
211110493169721897
558545864083284007
1477773452188053281
3909821048582988049
10344414165316372973
27368747340080916343
72410899157214610812
191581231380566414401
506876294100502275687
1341068619663964900807
3548134058703515929815
9387480337647754305649
24836938410924611508707
65712362363534280139543
173858568876472280560953
459986536544739960976801
1217009982135305963926677
3219905755813179726837607
8519069874947141747486745
22539340290692258087863249
59633489124629992232407216
157775382034845806615042743
417434423872409945626850517
1104427674243920646305299201
2922040967106869619387953625
7730993719707444524137094407
20454286769748087335715675381
54116956037952111668959660849
143180007388236611350009727669
378818692265664781682717625943
1002260051717656279450068093686
2651730845859653471779023381601
7015820362023593956150476655802</pre>
 
=={{header|Nim}}==
1,111

edits

Cookies help us deliver our services. By using our services, you agree to our use of cookies.