Möbius function: Difference between revisions
Content added Content deleted
m (→{{header|J}}: consistency) |
|||
Line 574: | Line 574: | ||
=={{header|FutureBasic}}== |
=={{header|FutureBasic}}== |
||
<lang futurebasic> |
<lang futurebasic>local fn IsPrime( n as long ) as Boolean |
||
⚫ | |||
include "NSLog.incl" |
|||
⚫ | |||
⚫ | |||
⚫ | |||
'~'1 |
|||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
end fn = result |
end fn = result |
||
⚫ | |||
long i, p = 0, result = 0 |
|||
local fn Mobius( n as NSInteger ) as NSInteger |
|||
'~'1 |
|||
if ( n == 1 ) then result = 1 : exit fn |
|||
for i = 1 to n + 1 |
|||
if ( n mod i == 0 ) and ( fn IsPrime( i ) == YES ) |
|||
if ( n mod ( i * i ) == 0 ) |
|||
result = 0 : exit fn |
|||
else |
|||
p++ |
|||
⚫ | |||
⚫ | |||
⚫ | |||
p++ |
|||
⚫ | |||
⚫ | |||
⚫ | |||
if( p mod 2 != 0 ) |
|||
⚫ | |||
result = -1 |
|||
⚫ | |||
result = -1 : exit fn |
|||
result = 1 |
|||
else |
|||
⚫ | |||
result = 1 : exit fn |
|||
⚫ | |||
end fn = result |
end fn = result |
||
window 1, @"Möbius function", (0,0,600,300) |
|||
window 1 |
|||
NSInteger i |
|||
printf @"First 100 terms of Mobius sequence:" |
printf @"First 100 terms of Mobius sequence:" |
||
long i |
|||
for i = 1 to 100 |
for i = 1 to 100 |
||
printf @"%2ld\t", fn Mobius(i) |
printf @"%2ld\t", fn Mobius(i) |
||
if ( i mod 20 == 0 ) then print |
if ( i mod 20 == 0 ) then print |
||
next |
next |
||
HandleEvents |
HandleEvents</lang> |
||
</lang> |
|||
{{output}} |
{{output}} |
||
<pre> |
<pre> |