DEV Community

Discussion on: Project Euler #7 - 10001st prime

Collapse
 
moose profile image
moose

class Sieve {
val magicnum: Int = 10001
fun buildSieve(startNumber: Int = 1, endNumber: Int = 100000): ArrayList {
var map = arrayListOf(NumObjects("na", 0))
for (i in startNumber..endNumber) {
map.add(NumObjects("na", i))
}
return map
}

fun doIncrement(iteration: Int, array:ArrayList<NumObjects>):ArrayList<NumObjects>{
    for(i in iteration..array.size step iteration){
        if(i+ iteration > array.size) {
            break;
        }
        array[i].hit="hit"
    }
    return array
}
fun doSieve(): Int {
    var sieveArray = buildSieve()
    val iterators: Array<Int> = arrayOf(2, 3, 5, 7)
    iterators.forEach {
        sieveArray = doIncrement(it, sieveArray)
    }
    var aff = sieveArray.filter{s-> s.hit == "na"}
    println(aff.get(ass.size-1).num)
    return aff.elementAt(magicnum-1).num
}
Enter fullscreen mode Exit fullscreen mode

}
class NumObjects(hit:String,num:Int){
var hit: String = hit
var num: Int = num
}