#!/usr/bin/Rscript # Falls das Paket numbers nicht installiert ist: # 1. R_LIBS=$PWD/r-libs R -e "install.packages('numbers', dependencies=TRUE, repos='http://cran.r-project.org')" # 2. R_LIBS=$PWD/r-libs ./pikatech_euler87.R library(numbers) #### # limit: Obere Grenze für die Summe der Primzahltripel # # Gibt die Anzahl der einmaligen Primzahltripel # bis zu einer oberen Grenze zurück. #### euler87 <- function(limit) { primes <- Primes(1, ceiling(limit^(1/2))) x2 <- primes^2 x3 <- primes^3 x4 <- primes^4 x2 <- x2[x2 < limit] x3 <- x3[x3 < limit] x4 <- x4[x4 < limit] x <- expand.grid(x2, x3, x4) xSums <- rowSums(x) length(unique(xSums[xSums < limit])) } system.time(print(euler87(5e7)))