Submission #8000504
Source Code Expand
import java.io.PrintWriter import java.util.* import java.math.* import java.lang.* import kotlin.comparisons.* val pw = PrintWriter(System.out) val MOD: Long = (1e+9 + 7).toLong() fun main(args: Array<String>) { val n = readInt() val array = Array<Long>(1000) { 1L } for(i in 1 .. n) { var tmp = i for(j in 2 until 1000) { while(tmp != 1 && tmp % j == 0) { tmp /= j array[j]++ } } } val ans = array.reduce { v1, v2 -> (v1 * v2) % MOD } println(ans) pw.flush() } /****** Declared Functions and Data Structures ******/ // IO fun read() = readLine()!! fun readInt() = read().toInt() fun readLong() = read().toLong() fun readDouble() = read().toDouble() fun readListOfString() = read().split(" ") fun readListOfInt() = readListOfString().map { it.toInt() } fun readListOfLong() = readListOfString().map { it.toLong() } fun readListOfDouble() = readListOfString().map { it.toDouble() } fun Double.format(digits: Int) = String.format("%.${digits}f", this) fun Float.format(digits: Int) = String.format("%.${digits}f", this) fun print(value: Any) { pw.print(value) } fun println(value : Any) { pw.println(value) } // Extensions fun<T> List<T>.toBuckets(): Map<T, Int> = this.groupBy { it }.mapValues { it.value.size } fun<T: Comparable<T>> List<T>.upperBound(element: T, fromIndex: Int=0, toIndex: Int=this.size): Int { var l = fromIndex var r = toIndex while(l < r) { val mid = (l+r) / 2 if(element >= this[mid]) { l = mid + 1 } else { r = mid } } return l } fun<T: Comparable<T>> List<T>.lowerBound(element: T, fromIndex: Int=0, toIndex: Int=this.size): Int { var l = fromIndex var r = toIndex while(l < r) { val mid = (l+r) / 2 if(element <= this[mid]) { r = mid } else { l = mid + 1 } } return r } fun <K, V> Map<K, V>.toMutableMap(): MutableMap<K, V> = HashMap(this) // Util Functions fun Long.makeDivisors(): List<Long> { val divisors = mutableListOf<Long>() for(i in 1L .. Math.sqrt(this.toDouble()).toLong()+1L) { if(this % i == 0L) { divisors.add(i) if(i != this/i) { divisors.add(this/i) } } } return divisors.distinct().sorted() } fun Long.isPrime(): Boolean { if(this==1L) return false for(i in 2L .. Math.sqrt(this.toDouble()).toLong() + 1L) { if(this % i == 0L && this != i) { return false } } return true } fun<T> permutations(src: List<T>): List<List<T>> { if(src.size == 1) return listOf(src) val perms = mutableListOf<List<T>>() val insertElement = src[0] permutations(src.drop(1)).forEach { perm -> for(i in 0..perm.size) { val newPerm = perm.toMutableList() newPerm.add(i, insertElement) perms.add(newPerm.toList()) } } return perms } // return nCr, if you want nCr, please access v[n][r] fun combinations(n: Long): List<List<Long>> { val v = (0..n).map { (0..n).map{0L}.toMutableList() }.toMutableList() for(i in 0 until v.size) { v[i][0] = 1L v[i][i] = 1L } for(i in 0 until v.size) { for(j in 1 until i) { v[i][j] = (v[i-1][j-1] + v[i-1][j]) % MOD } } return v.map { it.toList() }.toList() } // should be a >= b fun gcd(a: Long, b: Long): Long = if(b == 0L) a else gcd(b, a % b) // shoud be a >= b fun lcm(a: Long, b: Long): Long = a / gcd(a, b) * b fun sumDigits(num_: Long): Long { var num = num_ var rtn: Long = 0 while(num != 0.toLong()) { val tmp = num % 10 rtn += tmp num /= 10 } return rtn } fun Double.isDecimal(): Boolean = ((this - Math.floor(this)) != 0.0) // Data Structures class Stack<T>(private var st: MutableList<T> = mutableListOf<T>()) { fun isEmpty() = st.isEmpty() fun top(): T = st.last() fun push(e: T) { st.add(e) } fun pop() { st = st.dropLast(1).toMutableList() } } class Queue<T>(private var que: MutableList<T> = mutableListOf<T>()) { fun isEmpty() = que.isEmpty() fun top(): T = que.first() fun push(e: T) { que.add(e) } fun pop() { que = que.drop(1).toMutableList() } }
Submission Info
Submission Time | |
---|---|
Task | C - Factors of Factorial |
User | pokotsun |
Language | Kotlin (1.0.0) |
Score | 0 |
Code Size | 4069 Byte |
Status | CE |
Compile Error
Main.kt:10:1: exception: org.jetbrains.kotlin.codegen.CompilationException: Back-end (JVM) Internal error: wrong code generatedorg.jetbrains.org.objectweb.asm.tree.analysis.AnalyzerException Error at instruction 124: Illegal use of DUP_X2 bytecode: @Lorg/jetbrains/annotations/NotNull;() // invisible, parameter 0 L0 ALOAD 0 LDC "args" INVOKESTATIC kotlin/jvm/internal/Intrinsics.checkParameterIsNotNull (Ljava/lang/Object;Ljava/lang/String;)V L1 LINENUMBER 11 L1 INVOKESTATIC MainKt.readInt ()I ISTORE 1 L2 LINENUMBER 13 L2 SIPUSH 1000 ISTORE 3 INVOKESTATIC kotlin/jvm/internal/InlineMarker.beforeInlineCall ()V NOP L3 LINENUMBER 170 L3 ILOAD 3 ANEWARRAY java/lang/Long ASTORE 4 L4 LINENUMBER 171 L4 ICONST_0 ISTORE 5 ILOAD 3 ICONST_1 ISUB ISTORE 6 ILOAD 5 ILOAD 6 IF_ICMPGT L5 L6 LINENUMBER 172 L6 ALOAD 4 ILOAD 5 ILOAD 5 INVOKESTATIC java/lang/Integer.valueOf (I)Ljava/lang/Integ...