Skip to content

Instantly share code, notes, and snippets.

@paweljw
Forked from mazabin/KotlinExcercise.kt
Created June 12, 2020 15:36
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save paweljw/b18aac99a4067709f9f2dacbbf42eefa to your computer and use it in GitHub Desktop.
Save paweljw/b18aac99a4067709f9f2dacbbf42eefa to your computer and use it in GitHub Desktop.
Task: Sequence C contains elements from A if they are present in B p times, and p is prime number
import kotlin.math.*
fun main() {
val a = arrayListOf(2, 3, 9, 2, 5, 1, 3, 7, 10)
val b = intArrayOf(2, 1, 3, 4, 3, 10, 6, 6, 1, 7, 10, 10, 10)
val c = ArrayList<Int>(a)
for(i in b){
if(isPrimeNumber(countNumber(i, b)))
//if we didn't care about original contents of A, at this point we could remove the values from A and we would get the expected C.
c.remove(i)
}
//And just to prove that it works, we print it all out
for(i in c)
println(i)
}
//Primality test
fun isPrimeNumber(n : Int) : Boolean {
if (n < 2)
return false
val upperRange = floor(sqrt(n.toDouble())).toInt()
for(i in 2..upperRange){
val division = n%i
if(division == 0)
return false
}
return true
}
fun countNumber(n : Int, sequence : IntArray) : Int{
val predicate : (Int) -> Boolean = { it == n}
return sequence.count(predicate)
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment