使用Kotlin语言实现欧拉函数
时间: 2024-01-07 09:02:18 浏览: 106
欧拉算法代码
欧拉函数(Euler's totient function)是指小于或等于n的正整数中与n互质的数的个数,通常用φ(n)表示。下面是使用Kotlin语言实现欧拉函数的示例代码:
```kotlin
fun eulerPhi(n: Int): Int {
var result = n
var i = 2
while (i * i <= n) {
if (n % i == 0) {
while (n % i == 0) {
n /= i
}
result -= result / i
}
i++
}
if (n > 1) {
result -= result / n
}
return result
}
```
在上面的代码中,我们使用了欧拉函数的递推公式:
φ(n) = n * (1 - 1/p1) * (1 - 1/p2) * ... * (1 - 1/pk)
其中p1, p2, ..., pk是n的所有不同的质因数。
在实现中,我们使用了一个循环来枚举n的所有质因数,并使用递推公式计算结果。最后返回结果即可。
例如,eulerPhi(10)的结果为4,因为小于等于10且与10互质的数有1、3、7、9共4个。
阅读全文