mirror of
https://github.com/jlengrand/kotlin.git
synced 2026-05-16 15:53:55 +00:00
26 lines
785 B
Kotlin
Vendored
26 lines
785 B
Kotlin
Vendored
// TARGET_BACKEND: JVM
|
|
|
|
operator fun Int.plus(a: Int?) = this + a!!
|
|
|
|
public open class PerfectNumberFinder() {
|
|
open public fun isPerfect(number : Int) : Boolean {
|
|
var factors : MutableList<Int?> = ArrayList<Int?>()
|
|
factors?.add(1)
|
|
factors?.add(number)
|
|
for (i in 2..(Math.sqrt((number).toDouble()) - 1).toInt())
|
|
if (((number % i) == 0)) {
|
|
factors?.add(i)
|
|
if (((number / i) != i))
|
|
factors?.add((number / i))
|
|
|
|
}
|
|
|
|
var sum : Int = 0
|
|
for (i : Int? in factors)
|
|
sum += i
|
|
return ((sum - number) == number)
|
|
}
|
|
}
|
|
|
|
fun box () = if (PerfectNumberFinder().isPerfect(28)) "OK" else "fail"
|