Substring primes: Difference between revisions
Content added Content deleted
Alextretyak (talk | contribs) (Added 11l) |
(Substring primes in various BASIC dialents) |
||
Line 242: | Line 242: | ||
SubString Primes 1-500: 9 |
SubString Primes 1-500: 9 |
||
</pre> |
</pre> |
||
=={{header|BASIC}}== |
|||
==={{header|BASIC256}}=== |
|||
<lang freebasic>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 isSubstringPrime (n) |
|||
if not isPrime(n) then return False |
|||
if n < 10 then return True |
|||
if not isPrime(n mod 100) then return False |
|||
if not isPrime(n mod 10) then return False |
|||
if not isPrime(n \ 10) then return False |
|||
if n < 100 then return True |
|||
if not isPrime(n \ 100) then return False |
|||
if not isPrime((n mod 100) \ 10) then return False |
|||
return True |
|||
end function |
|||
for i = 1 to 500 |
|||
if isSubstringPrime(i) = 1 then print i; " "; |
|||
next i |
|||
end</lang> |
|||
{{out}} |
|||
<pre> |
|||
Igual que la entrada de FreeBASIC. |
|||
</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 isSubstringPrime (n) |
|||
If Not isPrime(n) : ProcedureReturn #False |
|||
ElseIf n < 10 : ProcedureReturn #True |
|||
ElseIf Not isPrime(n % 100) : ProcedureReturn #False |
|||
ElseIf Not isPrime(n % 10) : ProcedureReturn #False |
|||
ElseIf Not isPrime(n / 10) : ProcedureReturn #False |
|||
ElseIf n < 100 : ProcedureReturn #True |
|||
ElseIf Not isPrime(n / 100) : ProcedureReturn #False |
|||
ElseIf Not isPrime((n % 100)/10) : ProcedureReturn #False |
|||
EndIf |
|||
ProcedureReturn #True |
|||
EndProcedure |
|||
OpenConsole() |
|||
For i.i = 1 To 500 |
|||
If isSubstringPrime(i) = 1 : Print(Str(i) + " ") : EndIf |
|||
Next i |
|||
Input() |
|||
CloseConsole()</lang> |
|||
{{out}} |
|||
<pre> |
|||
Igual que la entrada de FreeBASIC. |
|||
</pre> |
|||
==={{header|Yabasic}}=== |
|||
<lang freebasic>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 isSubstringPrime (n) |
|||
if not isPrime(n) then return False : fi |
|||
if n < 10 then return True : fi |
|||
if not isPrime(mod(n, 100)) then return False : fi |
|||
if not isPrime(mod(n, 10)) then return False : fi |
|||
if not isPrime(int(n / 10)) then return False : fi |
|||
if n < 100 then return True : fi |
|||
if not isPrime(int(n / 100)) then return False : fi |
|||
if not isPrime(int(mod(n, 100))/10) then return False : fi |
|||
return True |
|||
end sub |
|||
for i = 1 to 500 |
|||
if isSubstringPrime(i) = 1 then print i, " "; : fi |
|||
next i |
|||
end</lang> |
|||
{{out}} |
|||
<pre> |
|||
Igual que la entrada de FreeBASIC. |
|||
</pre> |
|||
=={{header|C++}}== |
=={{header|C++}}== |