Sequence of non-squares: Difference between revisions

no edit summary
m (syntax highlighting fixup automation)
No edit summary
Line 2,789:
Transcript show: 'Squares found for values up to 1,000,000: ';
show: squaresFound asString; cr</syntaxhighlight>
 
=={{header|SparForte}}==
As a structured script.
<syntaxhighlight lang="ada">#!/usr/local/bin/spar
pragma annotate( summary, "nonsquares" );
pragma annotate( description, "Show that the following remarkable formula gives the" );
pragma annotate( description, "sequence of non-square natural numbers: n +" );
pragma annotate( description, "floor(1/2 + sqrt(n)). Print out the values for n in" );
pragma annotate( description, "the range 1 to 22. Show that no squares occur for n" );
pragma annotate( description, "less than one million." );
pragma annotate( see_also, "http://rosettacode.org/wiki/Sequence_of_non-squares" );
pragma annotate( author, "Ken O. Burtch" );
pragma license( unrestricted );
 
pragma restriction( no_external_commands );
 
procedure nonsquares is
function is_non_square (n : positive) return positive is
begin
return n + positive (numerics.rounding(numerics.sqrt (long_float (n))));
end is_non_square;
i : positive;
begin
for n in 1..22 loop -- First 22 non-squares
put (strings.image (is_non_square (n)));
end loop;
new_line;
for n in 1..1_000_000 loop -- Check first million of
i := is_non_square (n);
if i = positive (numerics.rounding(numerics.sqrt (long_float (i))))**2 then
put_line ("Found a square:" & strings.image (n));
end if;
end loop;
end nonsquares;</syntaxhighlight>
 
=={{header|Standard ML}}==
76

edits