Iccanobif primes: Difference between revisions

Added BASIC256, FreeBASIC, Gambas and Yabasic
(Added Perl)
(Added BASIC256, FreeBASIC, Gambas and Yabasic)
Line 120:
26 -> 4898934056...4215909399 (1947 digits)
27 -> 1274692768...7994940101 (2283 digits)</pre>
 
=={{header|BASIC}}==
==={{header|BASIC256}}===
{{trans|FreeBASIC}}
<syntaxhighlight lang="vb">#include "isprime.kbs"
 
cnt = 0 : prev = 0 : curr = 1
 
print "First 10 iccanobiF primes:"
while cnt < 10
sgte = prev + curr
prev = curr
curr = sgte
rev = reverseNumber(curr)
if isPrime(rev) then
# have a prime iccanobif number
cnt += 1
print rev; " ";
end if
end while
end
 
function reverseNumber(num)
if num < 10 then return num
reverse = 0
while num > 0
reverse = 10 * reverse + num mod 10
num = int(num / 10)
end while
return reverse
end function
</syntaxhighlight>
 
 
==={{header|FreeBASIC}}===
{{trans|ALGOL 68}}
<syntaxhighlight lang="vb">#include "isprime.bas"
 
' returns num with the digits reversed
Function reverseNumber(num As Uinteger) As Uinteger
If num < 10 Then Return num
Dim As Integer reverse = 0
While num > 0
reverse = 10 * reverse + (num Mod 10)
num \= 10
Wend
Return reverse
End Function
 
Dim As Byte cnt = 0
Dim As Uinteger prev = 0, curr = 1
Dim As Uinteger sgte, rev
Print "First 11 iccanobiF primes:"
While cnt < 11
sgte = prev + curr
prev = curr
curr = sgte
rev = reverseNumber(curr)
If isPrime(rev) Then
' have a prime iccanobif number
cnt += 1
Print rev; " ";
End If
Wend
 
Sleep</syntaxhighlight>
{{out}}
<pre>First 11 iccanobiF primes:
2 3 5 31 43 773 7951 64901 52057 393121 56577108676171</pre>
 
==={{header|Gambas}}===
{{trans|FreeBASIC}}
<syntaxhighlight lang="vbnet">Public Sub Main()
Dim cnt As Short = 0, prev As Long = 0, curr As Long = 1
Dim sgte As Long, rev As Long
Print "First 11 iccanobiF primes:"
While cnt < 11
sgte = prev + curr
prev = curr
curr = sgte
rev = reverseNumber(curr)
If isPrime(rev) Then
' have a prime iccanobif number
cnt += 1
Print rev; " ";
End If
Wend
Print
 
End
 
Function reverseNumber(num As Long) As Long
If num < 10 Then Return num
Dim reverse As Long = 0
While num > 0
reverse = 10 * reverse + (num Mod 10)
num \= 10
Wend
Return reverse
End Function
 
Sub isPrime(ValorEval As Long) As Boolean
If ValorEval < 2 Then Return False
If ValorEval Mod 2 = 0 Then Return ValorEval = 2
If ValorEval Mod 3 = 0 Then Return ValorEval = 3
Dim d As Long = 5
While d * d <= ValorEval
If ValorEval Mod d = 0 Then Return False Else d += 2
Wend
Return True
End Function
</syntaxhighlight>
{{out}}
<pre>Same as FreeBASIC entry.</pre>
 
==={{header|Yabasic}}===
{{trans|FreeBASIC}}
<syntaxhighlight lang="vb">//import isprime
 
cnt = 0 : prev = 0 : curr = 1
print "First 10 iccanobiF primes:"
while cnt < 10
sgte = prev + curr
prev = curr
curr = sgte
rev = reverseNumber(curr)
if isPrime(rev) then
// have a prime iccanobif number
cnt = cnt + 1
print rev, " ";
fi
wend
print
end
 
sub reverseNumber(num)
local revers
if num < 10 return num
revers = 0
while num > 0
revers = 10 * revers + mod(num, 10)
num = int(num / 10)
wend
return revers
end sub</syntaxhighlight>
 
=={{header|C}}==
2,161

edits