«`kotlin
// Импорт необходимых библиотек
import android.app.Activity
import android.os.Bundle
import android.widget.Button
import android.widget.EditText
import android.widget.TextView
class MainActivity : Activity() {
private lateinit var txtInput: EditText
private lateinit var txtOutput: TextView
private lateinit var btnCalculate: Button
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
// Получение ссылок на элементы интерфейса
txtInput = findViewById(R.id.txtInput)
txtOutput = findViewById(R.id.txtOutput)
btnCalculate = findViewById(R.id.btnCalculate)
// Обработка нажатия на кнопку
btnCalculate.setOnClickListener {
// Получение введенного числа
val input = txtInput.text.toString().toIntOrNull()
if (input != null) {
// Расчет factorial в отдельном потоке
Thread {
val factorial = calculateFactorial(input)
// Обновление пользовательского интерфейса в основном потоке
runOnUiThread {
txtOutput.text = factorial.toString()
}
}.start()
}
}
}
// Метод для расчета факториала
private fun calculateFactorial(number: Int): Int {
var result = 1
for (i in 1..number) {
result = i
}
return result
}
}
«`