Steps in Primes
Description:
The prime numbers are not regularly spaced. For example from 2
to 3
the step is 1
.
From 3
to 5
the step is 2
. From 7
to 11
it is 4
.
Between 2 and 50 we have the following pairs of 2-steps primes:
3, 5 - 5, 7, - 11, 13, - 17, 19, - 29, 31, - 41, 43
We will write a function step
with parameters:
g
(integer >= 2) which indicates the step we are looking for,m
(integer >= 2) which gives the start of the search (m inclusive),n
(integer >= m) which gives the end of the search (n inclusive)
In the example above step(2, 2, 50)
will return [3, 5]
which is the first pair between 2 and 50 with a 2-steps.
So this function should return the first pair of the two prime numbers spaced with a step of g
between the limits m
, n
if these g-steps prime numbers exist otherwise nil
or null
or None
or Nothing
or []
or "0, 0"
or {0, 0}
or 0 0
or "" (depending on the language).
Examples:
step(2, 5, 7) --> [5, 7] or (5, 7) or {5, 7} or "5 7"
step(2, 5, 5) --> nil or ... or [] in Ocaml or {0, 0} in C++
step(4, 130, 200) --> [163, 167] or (163, 167) or {163, 167}
See more examples for your language in "TESTS"
Remarks:
([193, 197] is also such a 4-steps primes between 130 and 200 but it's not the first pair).
step(6, 100, 110) --> [101, 107]
though there is a prime between 101 and 107 which is 103; the pair 101-103 is a 2-step.
Notes:
The idea of "step" is close to that of "gap" but it is not exactly the same. For those interested they can have a look at http://mathworld.wolfram.com/PrimeGaps.html.
A "gap" is more restrictive: there must be no primes in between (101-107 is a "step" but not a "gap". Next kata will be about "gaps":-).
For Go: nil slice is expected when there are no step
between m and n.
Example: step(2,4900,4919) --> nil
Similar Kata:
Stats:
Created | Oct 6, 2015 |
Published | Oct 6, 2015 |
Warriors Trained | 30441 |
Total Skips | 9595 |
Total Code Submissions | 42971 |
Total Times Completed | 6784 |
Ruby Completions | 250 |
Python Completions | 1563 |
JavaScript Completions | 1357 |
Haskell Completions | 69 |
C# Completions | 382 |
Java Completions | 837 |
Clojure Completions | 43 |
CoffeeScript Completions | 15 |
C++ Completions | 532 |
PHP Completions | 176 |
Crystal Completions | 13 |
C Completions | 277 |
OCaml Completions | 25 |
F# Completions | 32 |
TypeScript Completions | 146 |
Elixir Completions | 53 |
Rust Completions | 234 |
Swift Completions | 190 |
Go Completions | 361 |
Shell Completions | 47 |
R Completions | 42 |
Kotlin Completions | 154 |
Scala Completions | 130 |
Julia Completions | 29 |
PowerShell Completions | 31 |
Nim Completions | 10 |
Reason Completions | 6 |
Racket Completions | 19 |
Forth Completions | 8 |
Prolog Completions | 13 |
Fortran Completions | 7 |
Dart Completions | 109 |
Pascal Completions | 9 |
Lua Completions | 41 |
Perl Completions | 11 |
Elm Completions | 5 |
D Completions | 6 |
Total Stars | 497 |
% of votes with a positive feedback rating | 90% of 1065 |
Total "Very Satisfied" Votes | 879 |
Total "Somewhat Satisfied" Votes | 158 |
Total "Not Satisfied" Votes | 28 |