First 9 prime Fibonacci number: Difference between revisions

Content added Content deleted
(added AWK)
(First 9 Prime Fibonacci Number in various BASIC dialents)
Line 64: Line 64:
2 3 5 13 89 233 1597 28657 514229
2 3 5 13 89 233 1597 28657 514229
</pre>
</pre>


=={{header|BASIC}}==
==={{header|BASIC256}}===
<lang BASIC256>function isPrime(v)
if v < 2 then return False
if v mod 2 = 0 then return v = 2
if v mod 3 = 0 then return v = 3
d = 5
while d * d <= v
if v mod d = 0 then return False else d += 2
end while
return True
end function

function fib(nr)
if nr = 0 then return 0
if nr = 1 then return 1
if nr > 1 then return fib(nr-1) + fib(nr-2)
end function

i = 0
cont = 0
print "The first 9 Prime Fibonacci numbers: "
while True
i += 1
num = fib(i)
if isPrime(num) then
cont += 1
if cont < 10 then
print num; " ";
else
exit while
end if
end if
end while
end</lang>
{{out}}
<pre>
Igual que la entrada de FreeBASIC.
</pre>

==={{header|FreeBASIC}}===
<lang freebasic>Function isPrime(Byval ValorEval As Integer) As Boolean
If ValorEval <= 1 Then Return False
For i As Integer = 2 To Int(Sqr(ValorEval))
If ValorEval Mod i = 0 Then Return False
Next i
Return True
End Function

Function fib(nr As Integer) As Integer
If nr = 0 Then Return 0
If nr = 1 Then Return 1
If nr > 1 Then Return fib(nr-1) + fib(nr-2)
End Function

Dim As Integer i = 0, num, cont = 0
Print "The first 9 Prime Fibonacci numbers: "
Do
i += 1
num = fib(i)
If isprime(num) Then
cont += 1
If cont < 10 Then
Print num; " ";
Else
Exit Do
End If
End If
Loop
Sleep</lang>
{{out}}
<pre>The first 9 Prime Fibonacci numbers:
2 3 5 13 89 233 1597 28657 514229</pre>

==={{header|PureBasic}}===
<lang PureBasic>Procedure isPrime(v.i)
If v <= 1 : ProcedureReturn #False
ElseIf v < 4 : ProcedureReturn #True
ElseIf v % 2 = 0 : ProcedureReturn #False
ElseIf v < 9 : ProcedureReturn #True
ElseIf v % 3 = 0 : ProcedureReturn #False
Else
Protected r = Round(Sqr(v), #PB_Round_Down)
Protected f = 5
While f <= r
If v % f = 0 Or v % (f + 2) = 0
ProcedureReturn #False
EndIf
f + 6
Wend
EndIf
ProcedureReturn #True
EndProcedure

Procedure fib(nr.i)
If nr = 0 : ProcedureReturn 0
ElseIf nr = 1 : ProcedureReturn 1
ElseIf nr > 1 : ProcedureReturn fib(nr-1) + fib(nr-2)
EndIf
EndProcedure

If OpenConsole()
Define i.i = 0, cont.i = 0
PrintN("The first 9 Prime Fibonacci numbers: ")
Repeat
i + 1
num = fib(i)
If isprime(num)
cont + 1
If cont < 10
Print(Str(num) + " ")
Else
Break
EndIf
EndIf
ForEver
PrintN(#CRLF$ + "--- terminado, pulsa RETURN---"): Input()
CloseConsole()
EndIf</lang>
{{out}}
<pre>
Igual que la entrada de FreeBASIC.
</pre>

==={{header|Yabasic}}===
<lang yabasic>sub isPrime(v)
if v < 2 then return False : fi
if mod(v, 2) = 0 then return v = 2 : fi
if mod(v, 3) = 0 then return v = 3 : fi
d = 5
while d * d <= v
if mod(v, d) = 0 then return False else d = d + 2 : fi
wend
return True
end sub

sub fib(nr)
if nr = 0 then return 0 : fi
if nr = 1 then return 1 : fi
if nr > 1 then return fib(nr-1) + fib(nr-2) : fi
end sub

i = 0
cont = 0
print "The first 9 Prime Fibonacci numbers: "
do
i = i + 1
num = fib(i)
if isPrime(num) then
cont = cont + 1
if cont < 10 then
print num, " ";
else
break
end if
end if
loop
end</lang>
{{out}}
<pre>
Igual que la entrada de FreeBASIC.
</pre>



=={{header|C}}==
=={{header|C}}==