This repository has been archived on 2024-01-26. You can view files and clone it, but cannot push or open issues or pull requests.
coding-corner/2017-04-11/pikatech_euler87.R
Jörg Sommer 1383a3f62c pikatech_euler87: Ausführbar machen, Anleitung für numbers
Schöner ist, wenn man das Programm direkt auf der Kommandozeile aufrufen
kann, damit man als unwissender nicht erst rätseln muss, wie man es
ausführt.

Für das Programm ist das Paket numbers installiert. Da dieses mindestens
bei Debian nicht über das Paketsystem verfügbar ist, soll die kleine
Anleitung helfen, wie man es installiert.
2017-05-08 10:51:48 +02:00

29 lines
741 B
R
Executable file

#!/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)))