Die Herausforderung dieses Monats besteht darin, zu den Grundlagen zurückzukehren – Primzahlen zu finden.
Ich interessiere mich für zwei Funktionen:
- getPrimes( N , T ) - Wo N ist eine positive ganze Zahl und T kann einer von zwei Werten sein. Wenn es 1 ist getPrimes gibt den ersten zurück N Primzahlen. Wenn es 2 ist getPrimes gibt alle Primzahlen zurück, die kleiner oder gleich sind N . Sie können den Wert von annehmen N wird 1e8 nicht überschreiten.
- isPrime( vec ) - Wo vec ist ein nRow Zeile, 1 Spalte Matrix mit ganzzahligen Werten, die nicht größer als 4e14 sind. Es soll eine Matrix aus Einsen und Nullen zurückgegeben werden vec [ ich ] = 1 zeigt an ich Das Element von vec ist eine Primzahl und 0 ist keine Primzahl. Der Eingabetestvektor enthält zwischen 100 und 1000 Elemente (die Funktion sollte jedoch in der Lage sein, größere oder kleinere Vektoren zu akzeptieren).
Beispiele:
getPrimes(10,1) würde zurückkehren [2,3,5,7,11,13,17,19,23,29]
getPrimes(10,2) würde zurückkehren [2,3,5,7]
isPrime([-1,0,2,4,5]) würde zurückkehren [0,0,1,0,1]
Wertung: 4 Punkte für jede Funktion. 3, 2 und 1 Punkt für die schnellste Lösung (wird für jede Funktion separat vergeben). 3 Punkte, wenn Ihre Lösung genauso schnell oder schneller ist als die schnellste, die von einem Mitarbeiter eingereicht wurde.
Einsendeschluss ist Freitag. 15. Mai, 23:59 Uhr Eastern Time.
@DavidLeber Am besten schickst du mir die Lösung per E-Mail oder Privatnachricht in der Community. Nach dem 15. werde ich einen weiteren Beitrag veröffentlichen, in dem es um die Lösungen geht.
Wie genau veröffentlichen wir eine Lösung? Nur als Kommentar zu diesem Beitrag?
Schöne Website zur Überprüfung Ihrer Ergebnisse: https://primes.utm.edu/nthprime/index.php
@MathStatChem - Ja, der Grenzwert beträgt sowohl für t=1 als auch für t=2 1e8. Welchen Wert ich letztendlich zum Testen verwende, hängt davon ab, wie schnell die übermittelten Skripte ausgeführt werden.
Gilt für getPrimes() „Angenommen, n wird 1e8 nicht überschreiten“ sowohl für t=1 als auch für t=2?Ich frage, weil ich denke, dass es für JMP schwierig sein könnte, die ersten 100 Millionen Primzahlen zu finden.
@landon Ich erinnere mich auch daran und es hat definitiv die erste Herausforderung beeinflusst.
Danke, Don, für die lustige Herausforderung. Ich erinnere mich, als Sie vor ein paar Jahren bei unserem JMP-Day-Event waren, haben wir etwas Ähnliches wie Challenge 1 gemacht.
Prost, Landon