Advertisement
Guest User

Untitled

a guest
Jul 22nd, 2016
53
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Scala 1.23 KB | None | 0 0
  1. import scala.collection.mutable._
  2. import java.util.Arrays
  3.  
  4. object Solution {
  5.    
  6.     def reverse(num: Int, iter: Byte, facs: Array[Byte], select: ArrayBuffer[Byte]): Boolean = {
  7.         if (num == 1) {
  8.             true
  9.         }
  10.         if ((num < 1) || iter >= facs.length) {
  11.             false
  12.         }
  13.         if (num % facs(iter) == 0) {
  14.             select.append(facs(iter))
  15.             if (reverse(num/facs(iter), iter, facs, select)) {
  16.                 true
  17.             }
  18.             select.trimEnd(1)
  19.         }
  20.         return reverse(num, (iter+1).toByte, facs, select)
  21.     }
  22.    
  23.    
  24.    
  25.     def main(args: Array[String]) {
  26.         var l = readLine().split(" ")
  27.         var N = l(0).toInt
  28.         var k = l(1).toByte
  29.         var As = readLine().split(" ").map(n => n.toByte)
  30.            
  31.         As = As.filter(n => N % n == 0)
  32.         Arrays.sort(As)
  33.         As = As.reverse
  34.            
  35.         var track: ArrayBuffer[Byte] = new ArrayBuffer[Byte]()
  36.         if (reverse(N, 0, As, track)) {
  37.             N = 1
  38.             track.append(1)
  39.             for(v <- track.reverse){
  40.                 N *= v;
  41.                 println(N + " ");
  42.             }
  43.         } else {
  44.             println(-1)
  45.         }
  46.     }
  47. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement