View difference between Paste ID: jCZ1V6vg and YGst2Hmc
SHOW: | | - or go back to the newest paste.
1
// Author : Saurav Kalsoor
2-
// Sort By Primes - JAVA
2+
// Sort By Primes - KOTLIN
3
4-
import java.util.*;
4+
import java.util.*
5
6-
public class Test {
6+
var sc: Scanner = Scanner(System.`in`)
7
8-
    static Scanner sc = new Scanner(System.in);
8+
fun main() {
9-
    public static void main(String[] args) {
9+
    val n: Int = sc.nextInt()
10-
        int n = sc.nextInt();
10+
    val arr: ArrayList<Int> = ArrayList<Int>()
11
    for (i in 0 until n) {
12-
        ArrayList<Integer> arr = new ArrayList<>();
12+
        val input: Int = sc.nextInt()
13
        arr.add(input)
14-
        for(int i=0; i < n; i++) {
14+
15-
            int input = sc.nextInt();
15+
    val result: ArrayList<Int> = sortPrimeNonPrime(arr, n)
16-
            arr.add(input);
16+
    for (i in 0 until n) print(result.get(i).toString() + " ")
17
    println()
18
}
19-
        ArrayList<Integer> result = sortPrimeNonPrime(arr, n);
19+
20-
        
20+
fun sortPrimeNonPrime(arr: ArrayList<Int>, n: Int): ArrayList<Int> {
21-
        for(int i=0; i < n; i++)
21+
    val maxLimit = 10001
22-
            System.out.print(result.get(i) + " ");
22+
    val primesSet: HashSet<Int> = HashSet<Int>()
23-
        
23+
    val isPrime = BooleanArray(maxLimit)
24-
        System.out.println();
24+
25
    for (i in 2 until maxLimit) isPrime[i] = true
26
    
27-
    public static ArrayList<Integer> sortPrimeNonPrime(ArrayList<Integer> arr, int n){
27+
    for (i in 2 until maxLimit) {
28
        if (isPrime[i]) {
29-
        int maxLimit = 10001;
29+
            primesSet.add(i)
30-
        HashSet<Integer> primesSet = new HashSet<>();
30+
            var j: Int = i * i
31-
        boolean[] isPrime = new boolean[maxLimit];
31+
            while (j < maxLimit) {
32
                isPrime[j] = false
33-
        for(int i=2; i < maxLimit; i++) isPrime[i] = true;
33+
                j += i
34
            }
35-
        for(int i=2; i < maxLimit; i++){
35+
36-
            if(isPrime[i]){
36+
37-
                primesSet.add(i);
37+
    val primes: ArrayList<Int> = ArrayList<Int>()
38-
                for(int j = i*i ; j < maxLimit; j += i)
38+
    val nonPrimes: ArrayList<Int> = ArrayList<Int>()
39-
                    isPrime[j] = false;
39+
    for (i in 0 until n) {
40
        if (primesSet.contains(arr.get(i))) {
41
            primes.add(arr.get(i))
42
        } else {
43-
        ArrayList<Integer> primes = new ArrayList<Integer>();
43+
            nonPrimes.add(arr.get(i))
44-
        ArrayList<Integer> nonPrimes = new ArrayList<Integer>();
44+
45
    }
46-
        for(int i=0; i < n; i++){
46+
47-
            if(primesSet.contains(arr.get(i))){
47+
    Collections.sort(primes)
48-
                primes.add(arr.get(i));
48+
    Collections.sort(nonPrimes, Collections.reverseOrder())
49-
            }else{
49+
50-
                nonPrimes.add(arr.get(i));
50+
    val result: ArrayList<Int> = ArrayList<Int>()
51
    var j = 0
52
    var k = 0
53
    
54-
        Collections.sort(primes);
54+
    for (i in 0 until n) {
55-
        Collections.sort(nonPrimes, Collections.reverseOrder());
55+
        if (primesSet.contains(arr.get(i))) {
56-
        
56+
            result.add(primes.get(j))
57-
        ArrayList<Integer> result = new ArrayList<Integer>();
57+
            j++
58
        } else {
59-
        int j = 0, k = 0;
59+
            result.add(nonPrimes.get(k))
60-
        for(int i=0; i < n; i++){
60+
            k++
61-
            if(primesSet.contains(arr.get(i))){
61+
62-
                result.add(primes.get(j));
62+
63-
                j++;
63+
    return result
64-
            }else{
64+
}