Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import scala.collection.mutable._
- import java.util.Arrays
- object Solution {
- def reverse(num: Int, iter: Byte, facs: Array[Byte], select: ArrayBuffer[Byte]): Boolean = {
- if (num == 1) {
- true
- }
- if ((num < 1) || iter >= facs.length) {
- false
- }
- if (num % facs(iter) == 0) {
- select.append(facs(iter))
- if (reverse(num/facs(iter), iter, facs, select)) {
- true
- }
- select.trimEnd(1)
- }
- return reverse(num, (iter+1).toByte, facs, select)
- }
- def main(args: Array[String]) {
- var l = readLine().split(" ")
- var N = l(0).toInt
- var k = l(1).toByte
- var As = readLine().split(" ").map(n => n.toByte)
- As = As.filter(n => N % n == 0)
- Arrays.sort(As)
- As = As.reverse
- var track: ArrayBuffer[Byte] = new ArrayBuffer[Byte]()
- if (reverse(N, 0, As, track)) {
- N = 1
- track.append(1)
- for(v <- track.reverse){
- N *= v;
- println(N + " ");
- }
- } else {
- println(-1)
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement