• + 0 comments

    Solution in Python

    #!/bin/python3
    
    import math
    import os
    import random
    import re
    import sys
    
    #
    # Complete the 'waiter' function below.
    #
    # The function is expected to return an INTEGER_ARRAY.
    # The function accepts following parameters:
    #  1. INTEGER_ARRAY number
    #  2. INTEGER q
    #
    
    
    def generate_primes(q):
        primes = []
        num = 2
        while len(primes) < q:
            is_prime = True
            for p in primes:
                if num % p == 0:
                    is_prime = False
                    break
            if is_prime:
                primes.append(num)
            num += 1
        return primes
    
    def waiter(arr_p, q):
        primes = generate_primes(q)  
        answers = []
    
        for i in range(q):
            A, B = [], []
            prime = primes[i]
    
            while arr_p:
                plate = arr_p.pop()  
                if plate % prime == 0:
                    B.append(plate)  
                else:
                    A.append(plate)  
    
            answers.extend(reversed(B))
            arr_p = A 
        answers.extend(reversed(arr_p))
    
        return answers
    
    if __name__ == '__main__':
        n, q = map(int, input().split())  
        arr_p = list(map(int, input().split()))  
    
        result = waiter(arr_p, q)  
        for i in result:
            print(i)