A Rule of Divisibility by 7
Description:
A number m of the form 10x + y is divisible by 7 if and only if x − 2y is divisible by 7. In other words, subtract twice the last digit from the number formed by the remaining digits. Continue to do this until a number known to be divisible by 7 is obtained; you can stop when this number has at most 2 digits because you are supposed to know if a number of at most 2 digits is divisible by 7 or not.
The original number is divisible by 7 if and only if the last number obtained using this procedure is divisible by 7.
Examples:
1 - m = 371 -> 37 − (2×1) -> 37 − 2 = 35
; thus, since 35 is divisible by 7, 371 is divisible by 7.
The number of steps to get the result is 1
.
2 - m = 1603 -> 160 - (2 x 3) -> 154 -> 15 - 8 = 7
and 7 is divisible by 7.
3 - m = 372 -> 37 − (2×2) -> 37 − 4 = 33
; thus, since 33 is not divisible by 7, 372 is not divisible by 7.
4 - m = 477557101->47755708->4775554->477547->47740->4774->469->28
and 28 is divisible by 7, so is 477557101.
The number of steps is 7.
Task:
Your task is to return to the function seven(m)
(m integer >= 0) an array (or a pair, depending on the language) of numbers,
the first being the last number m
with at most 2 digits obtained by your function (this last m
will be divisible or not by 7), the second one being the number of steps to get the result.
Forth Note:
Return on the stack number-of-steps, last-number-m-with-at-most-2-digits
Examples:
seven(371) should return [35, 1]
seven(1603) should return [7, 2]
seven(477557101) should return [28, 7]
Similar Kata:
Stats:
Created | Sep 2, 2015 |
Published | Sep 2, 2015 |
Warriors Trained | 39915 |
Total Skips | 7744 |
Total Code Submissions | 66182 |
Total Times Completed | 12926 |
Ruby Completions | 351 |
Python Completions | 3073 |
JavaScript Completions | 2638 |
Haskell Completions | 228 |
Java Completions | 1674 |
C# Completions | 704 |
Clojure Completions | 151 |
CoffeeScript Completions | 14 |
TypeScript Completions | 226 |
Elixir Completions | 186 |
C++ Completions | 963 |
PHP Completions | 470 |
Crystal Completions | 23 |
F# Completions | 88 |
C Completions | 571 |
Shell Completions | 141 |
OCaml Completions | 82 |
Kotlin Completions | 452 |
NASM Completions | 17 |
Julia Completions | 33 |
R Completions | 119 |
PowerShell Completions | 80 |
Go Completions | 487 |
Nim Completions | 17 |
Rust Completions | 300 |
Reason Completions | 9 |
Racket Completions | 41 |
Forth Completions | 28 |
Factor Completions | 21 |
Scala Completions | 127 |
Prolog Completions | 23 |
Fortran Completions | 20 |
Haxe Completions | 10 |
Dart Completions | 222 |
Pascal Completions | 30 |
Lua Completions | 68 |
Perl Completions | 33 |
COBOL Completions | 9 |
D Completions | 12 |
Erlang Completions | 22 |
Total Stars | 450 |
% of votes with a positive feedback rating | 84% of 1763 |
Total "Very Satisfied" Votes | 1312 |
Total "Somewhat Satisfied" Votes | 336 |
Total "Not Satisfied" Votes | 115 |