Piet van Dongen 11 лет назад
Родитель
Сommit
a73bfe82f3

+ 2
- 1
config.json Просмотреть файл

19
     "triangle",
19
     "triangle",
20
     "scrabble-score",
20
     "scrabble-score",
21
     "roman-numerals",
21
     "roman-numerals",
22
-    "binary"
22
+    "binary",
23
+    "prime-factors"
23
   ],
24
   ],
24
   "deprecated": [
25
   "deprecated": [
25
   ],
26
   ],

+ 11
- 0
prime-factors/build.gradle Просмотреть файл

1
+apply plugin: "java"
2
+apply plugin: "eclipse"
3
+apply plugin: "idea"
4
+
5
+repositories {
6
+  mavenCentral()
7
+}
8
+
9
+dependencies {
10
+  testCompile "junit:junit:4.10"
11
+}

+ 21
- 0
prime-factors/example.java Просмотреть файл

1
+import java.util.ArrayList;
2
+import java.util.List;
3
+
4
+public class PrimeFactors {
5
+
6
+    public static List<Integer> getForNumber(double number) {
7
+        List<Integer> primes = new ArrayList<>();
8
+        int divisor = 2;
9
+
10
+        while (number > 1) {
11
+            while (number % divisor == 0) {
12
+                primes.add(divisor);
13
+                number /= divisor;
14
+            }
15
+
16
+            divisor++;
17
+        }
18
+
19
+        return primes;
20
+    }
21
+}

+ 0
- 0
prime-factors/src/main/java/.keep Просмотреть файл


+ 2
- 0
prime-factors/src/main/java/PrimeFactors.java Просмотреть файл

1
+public class PrimeFactors {
2
+}

+ 44
- 0
prime-factors/src/test/java/PrimeFactorsTest.java Просмотреть файл

1
+import org.junit.Test;
2
+import org.junit.runner.RunWith;
3
+import org.junit.runners.Parameterized;
4
+import org.junit.runners.Parameterized.Parameters;
5
+
6
+import java.util.Arrays;
7
+import java.util.Collection;
8
+import java.util.List;
9
+
10
+import static org.junit.Assert.assertEquals;
11
+
12
+@RunWith(Parameterized.class)
13
+public class PrimeFactorsTest {
14
+
15
+    private double input;
16
+    private List<Integer> expectedOutput;
17
+
18
+    @Parameters
19
+    public static Collection<Object[]> data() {
20
+        return Arrays.asList(new Object[][]{
21
+                {1, Arrays.asList(new Integer[0])},
22
+                {2, Arrays.asList(new Integer[]{2})},
23
+                {3, Arrays.asList(new Integer[]{3})},
24
+                {4, Arrays.asList(new Integer[]{2, 2})},
25
+                {6, Arrays.asList(new Integer[]{2, 3})},
26
+                {8, Arrays.asList(new Integer[]{2, 2, 2})},
27
+                {9, Arrays.asList(new Integer[]{3, 3})},
28
+                {27, Arrays.asList(new Integer[]{3, 3, 3})},
29
+                {625, Arrays.asList(new Integer[]{5, 5, 5, 5})},
30
+                {901255, Arrays.asList(new Integer[]{5, 17, 23, 461})},
31
+                {93819012551L, Arrays.asList(new Integer[]{11, 9539, 894119})}
32
+        });
33
+    }
34
+
35
+    public PrimeFactorsTest(double input, List<Integer> expectedOutput) {
36
+        this.input = input;
37
+        this.expectedOutput = expectedOutput;
38
+    }
39
+
40
+    @Test
41
+    public void test() {
42
+        assertEquals(expectedOutput, PrimeFactors.getForNumber(input));
43
+    }
44
+}