19 lines
670 B
R
19 lines
670 B
R
library(bit64)
|
|
popCount <- function(x) sum(as.numeric(strsplit(as.bitstring(as.integer64(x)), "")[[1]]))
|
|
finder <- function()
|
|
{
|
|
odious <- evil <- integer(0)
|
|
x <- odiousLength <- evilLength <- 0
|
|
while(evilLength + odiousLength != 60)#We could be smarter, but this condition suffices.
|
|
{
|
|
if(popCount(x) %% 2 == 0) evil[evilLength + 1] <- x else odious[odiousLength + 1] <- x
|
|
x <- x + 1
|
|
evilLength <- length(evil)
|
|
odiousLength <- length(odious)
|
|
}
|
|
cat("The pop count of the 1st 30 powers of 3 are:", sapply(3^(0:29), popCount), "\n")
|
|
cat("The first 30 evil numbers are:", evil, "\n")
|
|
cat("The first 30 odious numbers are:", odious)
|
|
}
|
|
finder()
|