6 kyu

Steps in Primes

250 of 6,784g964

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

Mathematics
Number Theory

More By Author:

Check out these other kata created by g964

Stats:

CreatedOct 6, 2015
PublishedOct 6, 2015
Warriors Trained30441
Total Skips9595
Total Code Submissions42971
Total Times Completed6784
Ruby Completions250
Python Completions1563
JavaScript Completions1357
Haskell Completions69
C# Completions382
Java Completions837
Clojure Completions43
CoffeeScript Completions15
C++ Completions532
PHP Completions176
Crystal Completions13
C Completions277
OCaml Completions25
F# Completions32
TypeScript Completions146
Elixir Completions53
Rust Completions234
Swift Completions190
Go Completions361
Shell Completions47
R Completions42
Kotlin Completions154
Scala Completions130
Julia Completions29
PowerShell Completions31
Nim Completions10
Reason Completions6
Racket Completions19
Forth Completions8
Prolog Completions13
Fortran Completions7
Dart Completions109
Pascal Completions9
Lua Completions41
Perl Completions11
Elm Completions5
D Completions6
Total Stars497
% of votes with a positive feedback rating90% of 1065
Total "Very Satisfied" Votes879
Total "Somewhat Satisfied" Votes158
Total "Not Satisfied" Votes28
Ad
Contributors
  • g964 Avatar
  • joh_pot Avatar
  • kazk Avatar
  • Blind4Basics Avatar
  • Voile Avatar
  • monadius Avatar
  • hobovsky Avatar
  • user8436785 Avatar
  • Glinator Avatar
  • Just4FunCoder Avatar
Ad