Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
61
Task/Pernicious-numbers/PureBasic/pernicious-numbers.basic
Normal file
61
Task/Pernicious-numbers/PureBasic/pernicious-numbers.basic
Normal file
|
|
@ -0,0 +1,61 @@
|
|||
EnableExplicit
|
||||
|
||||
Procedure.i SumBinaryDigits(Number)
|
||||
If Number < 0 : number = -number : EndIf; convert negative numbers to positive
|
||||
Protected sum = 0
|
||||
While Number > 0
|
||||
sum + Number % 2
|
||||
Number / 2
|
||||
Wend
|
||||
ProcedureReturn sum
|
||||
EndProcedure
|
||||
|
||||
Procedure.i IsPrime(Number)
|
||||
If Number <= 1
|
||||
ProcedureReturn #False
|
||||
ElseIf Number <= 3
|
||||
ProcedureReturn #True
|
||||
ElseIf Number % 2 = 0 Or Number % 3 = 0
|
||||
ProcedureReturn #False
|
||||
EndIf
|
||||
Protected i = 5
|
||||
While i * i <= Number
|
||||
If Number % i = 0 Or Number % (i + 2) = 0
|
||||
ProcedureReturn #False
|
||||
EndIf
|
||||
i + 6
|
||||
Wend
|
||||
ProcedureReturn #True
|
||||
EndProcedure
|
||||
|
||||
Procedure.i IsPernicious(Number)
|
||||
Protected popCount = SumBinaryDigits(Number)
|
||||
ProcedureReturn Bool(IsPrime(popCount))
|
||||
EndProcedure
|
||||
|
||||
Define n = 1, count = 0
|
||||
If OpenConsole()
|
||||
PrintN("The following are the first 25 pernicious numbers :")
|
||||
PrintN("")
|
||||
Repeat
|
||||
If IsPernicious(n)
|
||||
Print(RSet(Str(n), 3))
|
||||
count + 1
|
||||
EndIf
|
||||
n + 1
|
||||
Until count = 25
|
||||
PrintN("")
|
||||
PrintN("")
|
||||
PrintN("The pernicious numbers between 888,888,877 and 888,888,888 inclusive are : ")
|
||||
PrintN("")
|
||||
For n = 888888877 To 888888888
|
||||
If IsPernicious(n)
|
||||
Print(RSet(Str(n), 10))
|
||||
EndIf
|
||||
Next
|
||||
PrintN("")
|
||||
PrintN("")
|
||||
PrintN("Press any key to close the console")
|
||||
Repeat: Delay(10) : Until Inkey() <> ""
|
||||
CloseConsole()
|
||||
EndIf
|
||||
Loading…
Add table
Add a link
Reference in a new issue