Find square difference: Difference between revisions

m
syntax highlighting fixup automation
m (→‎{{header|ALGOL 68}}: Corrected comments and typos)
m (syntax highlighting fixup automation)
Line 7:
 
=={{header|11l}}==
<langsyntaxhighlight lang="11l">L(n) 1..
I n^2 - (n - 1)^2 > 1000
print(n)
L.break</langsyntaxhighlight>
 
{{out}}
Line 18:
 
=={{header|Ada}}==
<langsyntaxhighlight Adalang="ada">with Ada.Text_IO; use Ada.Text_IO;
 
procedure Find_Square_Difference is
Line 34:
end if;
end loop;
end Find_Square_Difference;</langsyntaxhighlight>
{{out}}
<pre>
Line 42:
=={{header|ALGOL 68}}==
Also shows the least positive integer where the difference between n^2 and (n-1)^2 is greater than 32 000 and 2 000 000 000.
<langsyntaxhighlight lang="algol68">BEGIN # find the lowest positive n where the difference between n^2 and (n-1)^2 is > 1000 #
[]INT test = ( 1 000, 32 000, 2 000 000 000 );
FOR i FROM LWB test TO UPB test DO
Line 54:
)
OD
END</langsyntaxhighlight>
{{out}}
<pre>
Line 63:
 
=={{header|ALGOL W}}==
<langsyntaxhighlight lang="pascal">begin % find the lowest positive n where the difference between n^2 and (n-1)^2 is > 1000 %
integer requiredDifference;
requiredDifference := 1000;
Line 70:
, " is: ", ( ( requiredDifference + 1 ) div 2 ) + 1
)
end.</langsyntaxhighlight>
{{out}}
<pre>
Line 78:
=={{header|Arturo}}==
 
<langsyntaxhighlight lang="rebol">i: new 1
while ø [
if 1000 < (i^2)-(dec i)^2
Line 84:
inc 'i
]
print i</langsyntaxhighlight>
 
{{out}}
Line 91:
 
=={{header|Asymptote}}==
<langsyntaxhighlight Asymptotelang="asymptote">int fpow(int n) {
int i = 0;
while (i^2 - (i-1)^2 < n) ++i;
Line 97:
}
 
write(fpow(1000));</langsyntaxhighlight>
 
=={{header|AutoHotkey}}==
<langsyntaxhighlight AutoHotkeylang="autohotkey">while ((n:=A_Index)**2 - (n-1)**2 < 1000)
continue
MsgBox % result := n</langsyntaxhighlight>
{{out}}
<pre>501</pre>
 
=={{header|AWK}}==
<syntaxhighlight lang="awk">
<lang AWK>
# syntax: GAWK -f FIND_SQUARE_DIFFERENCE.AWK
BEGIN {
Line 117:
exit(0)
}
</syntaxhighlight>
</lang>
{{out}}
<pre>
Line 126:
=={{header|BASIC}}==
==={{header|BASIC256}}===
<langsyntaxhighlight lang="freebasic">function fpow(n)
i = 0
while i^2 - (i-1)^2 < n
Line 135:
 
print fpow(1001)
end</langsyntaxhighlight>
 
==={{header|PureBasic}}===
<langsyntaxhighlight PureBasiclang="purebasic">Procedure fpow(n.i)
Define i.i
While Pow(i, 2) - Pow((i-1), 2) < n
Line 149:
Print(Str(fpow(1001)))
Input()
CloseConsole()</langsyntaxhighlight>
 
==={{header|QBasic}}===
<langsyntaxhighlight lang="qbasic">FUNCTION fpow (n)
WHILE (i * i) - ((i - 1) * (i - 1)) < n
i = i + 1
Line 159:
END FUNCTION
 
PRINT fpow(1001)</langsyntaxhighlight>
 
==={{header|Run BASIC}}===
<langsyntaxhighlight lang="lb">function fpow(n)
while i^2-(i-1)^2 < n
i = i+1
Line 169:
end function
print fpow(1001)</langsyntaxhighlight>
 
==={{header|True BASIC}}===
<langsyntaxhighlight lang="qbasic">FUNCTION fpow (n)
DO WHILE i ^ 2 - (i - 1) ^ 2 < n
LET i = i + 1
Line 180:
 
PRINT fpow(1001)
END</langsyntaxhighlight>
 
==={{Header|Tiny BASIC}}===
<langsyntaxhighlight lang="qbasic"> LET N = 1001
 
LET I = 0
Line 191:
GOTO 10
20 PRINT I
END</langsyntaxhighlight>
 
==={{header|Yabasic}}===
<langsyntaxhighlight lang="freebasic">sub fpow(n)
while i^2 - (i-1)^2 < n
i = i + 1
Line 202:
 
print fpow(1001)
end</langsyntaxhighlight>
 
 
=={{header|C}}==
<langsyntaxhighlight lang="c">#include<stdio.h>
#include<stdlib.h>
 
Line 218:
printf( "%d\n", f(1000) );
return 0;
}</langsyntaxhighlight>
{{out}}
<pre>501</pre>
Line 224:
=={{header|C++}}==
The C solution is also idomatic in C++. An alterate approach is to use Ranges from C++20.
<langsyntaxhighlight lang="cpp">#include <iostream>
#include <ranges>
 
Line 236:
std::cout << answer.front() << '\n';
}
</syntaxhighlight>
</lang>
{{out}}
<pre>
Line 243:
 
=={{header|Dart}}==
<langsyntaxhighlight lang="dart">import 'dart:math';
 
int leastSquare(int gap) {
Line 255:
void main() {
print(leastSquare(1000));
}</langsyntaxhighlight>
{{out}}
<pre>501</pre>
 
=={{header|F_Sharp|F#}}==
<langsyntaxhighlight lang="fsharp">
let n=1000 in printfn $"%d{((n+1)/2)+1}"
</syntaxhighlight>
</lang>
{{out}}
<pre>
Line 270:
The difference between squares is the odd numbers, so ls(n)=&#8968;n/2+1&#8969;.
{{works with|Factor|0.99 2021-06-02}}
<langsyntaxhighlight lang="factor">USING: math math.functions prettyprint ;
 
: least-sq ( m -- n ) 2 / 1 + ceiling ;
 
1000 least-sq .</langsyntaxhighlight>
{{out}}
<pre>
Line 281:
 
=={{header|Fermat}}==
<syntaxhighlight lang="text">Func F(n) =
i:=0;
while i^2-(i-1)^2<n do i:=i+1 od; i.;
 
!!F(1000);</langsyntaxhighlight>
{{out}}<pre>501</pre>
 
=={{header|FreeBASIC}}==
<langsyntaxhighlight lang="freebasic">function fpow(n as uinteger) as uinteger
dim as uinteger i
while i^2-(i-1)^2 < n
Line 297:
end function
 
print fpow(1001)</langsyntaxhighlight>
{{out}}<pre>501</pre>
 
=={{header|Go}}==
<langsyntaxhighlight lang="go">package main
 
import (
Line 314:
func main() {
fmt.Println(squareDiff(1000))
}</langsyntaxhighlight>
 
{{out}}
Line 323:
=={{header|Haskell}}==
The sequence of differences between successive squares is the sequence of odd numbers.
<langsyntaxhighlight lang="haskell">import Data.List (findIndex)
 
f = succ . flip div 2
Line 333:
Just i = succ <$> findIndex (> n) [1, 3 ..]
 
main = mapM_ print $ [f, g] <*> [1000]</langsyntaxhighlight>
{{Out}}
<pre>501
Line 345:
 
At the risk of hastening RC's demise, one could offer a jq solution like so:
<langsyntaxhighlight lang="jq">first( range(1; infinite) | select( 2 * . - 1 > 1000 ) )</langsyntaxhighlight>
Or, for anyone envious of Bitcoin's contribution to global warming:
<syntaxhighlight lang="jq">
<lang jq>
first( range(1; infinite) | select( .*. - ((.-1) | .*.) > 1000 ) )
</syntaxhighlight>
</lang>
{{out}}
<pre>
Line 356:
 
=={{header|Julia}}==
<langsyntaxhighlight lang="julia">julia> findfirst(n -> n*n - (n-1)*(n-1) > 1000, 1:1_000_000)
501
</syntaxhighlight>
</lang>
 
=={{header|Pari/GP}}==
<langsyntaxhighlight lang="parigp">F(n)=i=0;while(i^2-(i-1)^2<n,i=i+1);return(i);
print(F(1000))</langsyntaxhighlight>
{{out}}<pre>501</pre>
 
Line 386:
 
=={{header|Perl}}==
<langsyntaxhighlight lang="perl">#!/usr/bin/perl
 
use strict; # https://rosettacode.org/wiki/Least_square
Line 393:
my $n = 1;
$n++ until $n ** 2 - ($n-1) ** 2 > 1000;
print "$n\n";</langsyntaxhighlight>
{{out}}
<pre>
Line 401:
=={{header|Phix}}==
<small>''Essentially Wren equivalent, but explained in excruciating detail especially for enyone that evidently needs elp, said Eeyore.''</small>
<!--<langsyntaxhighlight Phixlang="phix">(phixonline)-->
<span style="color: #008080;">with</span> <span style="color: #008080;">javascript_semantics</span>
<span style="color: #7060A8;">printf</span><span style="color: #0000FF;">(</span><span style="color: #000000;">1</span><span style="color: #0000FF;">,</span><span style="color: #008000;">"""
Line 412:
n = %d
"""</span><span style="color: #0000FF;">,</span><span style="color: #7060A8;">ceil</span><span style="color: #0000FF;">(</span><span style="color: #000000;">500.5</span><span style="color: #0000FF;">))</span>
<!--</langsyntaxhighlight>-->
{{out}}
<pre>
Line 424:
</pre>
Or if you prefer, same output:
<!--<langsyntaxhighlight Phixlang="phix">(phixonline)-->
<span style="color: #008080;">with</span> <span style="color: #008080;">javascript_semantics</span>
<span style="color: #004080;">string</span> <span style="color: #000000;">e</span> <span style="color: #000080;font-style:italic;">-- equation</span>
Line 441:
<span style="color: #000000;">p</span><span style="color: #0000FF;">(</span><span style="color: #7060A8;">substitute_all</span><span style="color: #0000FF;">(</span><span style="color: #000000;">e</span><span style="color: #0000FF;">,{</span><span style="color: #008000;">"2*"</span><span style="color: #0000FF;">,</span><span style="color: #008000;">"1001"</span><span style="color: #0000FF;">},{</span><span style="color: #008000;">""</span><span style="color: #0000FF;">,</span><span style="color: #008000;">"500.5"</span><span style="color: #0000FF;">}))</span> <span style="color: #000080;font-style:italic;">-- divide by 2</span>
<span style="color: #000000;">p</span><span style="color: #0000FF;">(</span><span style="color: #7060A8;">substitute</span><span style="color: #0000FF;">(</span><span style="color: #000000;">e</span><span style="color: #0000FF;">,</span><span style="color: #008000;">"&gt; 500.5"</span><span style="color: #0000FF;">,</span><span style="color: #7060A8;">sprintf</span><span style="color: #0000FF;">(</span><span style="color: #008000;">"= %d"</span><span style="color: #0000FF;">,</span><span style="color: #7060A8;">ceil</span><span style="color: #0000FF;">(</span><span style="color: #000000;">500.5</span><span style="color: #0000FF;">))))</span> <span style="color: #000080;font-style:italic;">-- solve</span>
<!--</langsyntaxhighlight>-->
or even:
<!--<langsyntaxhighlight Phixlang="phix">-->
<span style="color: #008080;">without</span> <span style="color: #008080;">js</span> <span style="color: #000080;font-style:italic;">-- (user defined types are not implicitly called)</span>
<span style="color: #008080;">type</span> <span style="color: #000000;">pstring</span><span style="color: #0000FF;">(</span><span style="color: #004080;">string</span> <span style="color: #000000;">s</span><span style="color: #0000FF;">)</span> <span style="color: #7060A8;">printf</span><span style="color: #0000FF;">(</span><span style="color: #000000;">1</span><span style="color: #0000FF;">,</span><span style="color: #008000;">"%s\n"</span><span style="color: #0000FF;">,</span><span style="color: #000000;">s</span><span style="color: #0000FF;">)</span> <span style="color: #008080;">return</span> <span style="color: #004600;">true</span> <span style="color: #008080;">end</span> <span style="color: #008080;">type</span>
Line 457:
<span style="color: #000000;">e</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">substitute_all</span><span style="color: #0000FF;">(</span><span style="color: #000000;">e</span><span style="color: #0000FF;">,{</span><span style="color: #008000;">"2*"</span><span style="color: #0000FF;">,</span><span style="color: #008000;">"1001"</span><span style="color: #0000FF;">},{</span><span style="color: #008000;">""</span><span style="color: #0000FF;">,</span><span style="color: #008000;">"500.5"</span><span style="color: #0000FF;">})</span> <span style="color: #000080;font-style:italic;">-- divide by 2</span>
<span style="color: #000000;">e</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">substitute</span><span style="color: #0000FF;">(</span><span style="color: #000000;">e</span><span style="color: #0000FF;">,</span><span style="color: #008000;">"&gt; 500.5"</span><span style="color: #0000FF;">,</span><span style="color: #7060A8;">sprintf</span><span style="color: #0000FF;">(</span><span style="color: #008000;">"= %d"</span><span style="color: #0000FF;">,</span><span style="color: #7060A8;">ceil</span><span style="color: #0000FF;">(</span><span style="color: #000000;">500.5</span><span style="color: #0000FF;">)))</span> <span style="color: #000080;font-style:italic;">-- solve</span>
<!--</langsyntaxhighlight>-->
 
=={{header|PL/M}}==
This can be compiled with the original 8080 PL/M compiler and run under CP/M or an emulator.
<br>Note that the original 8080 PL/M compiler only supports 8 and 16 bit unisgned numbers.
<langsyntaxhighlight lang="pli">100H: /* FIND THE LEAST +VE N WHERE N SQUARED - (N-1) SQUARED > 1000 */
 
BDOS: PROCEDURE( FN, ARG ); /* CP/M BDOS SYSTEM CALL */
Line 497:
CALL PRINT$LEAST( 65000 );
 
EOF</langsyntaxhighlight>
{{out}}
<pre>
Line 506:
 
=={{header|Python}}==
<langsyntaxhighlight lang="python">
import math
print("working...")
Line 524:
print("done...")
print()
</syntaxhighlight>
</lang>
{{out}}
<pre>
Line 534:
=={{header|Quackery}}==
 
<langsyntaxhighlight Quackerylang="quackery"> [ dup * ] is squared ( n --> n )
0
Line 541:
over 1 - squared -
1000 > until ]
echo</langsyntaxhighlight>
 
{{out}}
Line 551:
Noting that a²-b² ≡ (a+b)(a-b), and that in this instance a = b+1.
 
<langsyntaxhighlight Quackerylang="quackery"> 1000 2 / 1+ echo</langsyntaxhighlight>
 
{{out}}
Line 558:
 
=={{header|Raku}}==
<syntaxhighlight lang="raku" perl6line>say first { $_² - ($_-1)² > 1000 }, ^Inf;</langsyntaxhighlight>
{{out}}
<pre>501</pre>
 
=={{header|Ring}}==
<langsyntaxhighlight lang="ring">
load "stdlib.ring"
see "working..." + nl
Line 581:
 
see "done..." + nl
</syntaxhighlight>
</lang>
{{out}}
<pre>
Line 590:
 
=={{header|Sidef}}==
<langsyntaxhighlight lang="ruby">var N = 1000
 
# Binary search
Line 603:
assert_eq(n, m)
 
say "#{n}^2 - #{n-1}^2 = #{n**2 - (n-1)**2}"</langsyntaxhighlight>
{{out}}
<pre>
Line 610:
 
=={{header|Verilog}}==
<langsyntaxhighlight Veriloglang="verilog">module main;
integer i, n;
Line 620:
$finish ;
end
endmodule</langsyntaxhighlight>
 
=={{header|Wren}}==
The solution '''n''' for some non-negative integer '''k''' needs to be such that: ''n² - (n² - 2n + 1) > k'' which reduces to: ''n > (k + 1)/2''.
<langsyntaxhighlight lang="ecmascript">var squareDiff = Fn.new { |k| ((k + 1) * 0.5).ceil }
System.print(squareDiff.call(1000))</langsyntaxhighlight>
 
{{out}}
10,327

edits