# Kotlin 程序：检查数字是否为质数

> 原文： [https://www.programiz.com/kotlin-programming/examples/prime-number](https://www.programiz.com/kotlin-programming/examples/prime-number)

#### 在本文中，您将学习检查数字是否为质数。 这是通过 Kotlin 中的`for-in`循环完成的。

## 示例 1：使用`for-in`循环检查质数的程序

```kt
fun main(args: Array<String>) {
    val num = 29
    var flag = false
    for (i in 2..num / 2) {
        // condition for nonprime number
        if (num % i == 0) {
            flag = true
            break
        }
    }

    if (!flag)
        println("$num is a prime number.")
    else
        println("$num is not a prime number.")
}
```

运行该程序时，输出为：

```kt
29 is a prime number.
```

与 Java 一样，在上述程序中，`for`循环用于确定给定数字`num`是否为质数。 我们只需要遍历`num`的 2 到一半，因为没有数字可被其一半以上的整数整除。

在`for`循环内，我们检查该数字是否可被给定范围`(2..num/2)`中的任何数字整除。 如果是，则将`marks`设置为`true`，我们就跳出了循环。 这确定`num`不是质数。

如果`num`不能被任何数整除，则`marks`为`false`，而`num`为质数。

以下是等效的 Java 代码：[用于检查质数的 Java 程序](/java-programming/examples/prime-number "Java Program to Check Whether a Number is Prime or Not")

* * *

## 示例 2：使用`while`循环检查质数的程序

```kt
fun main(args: Array<String>) {
    val num = 33
    var i = 2
    var flag = false
    while (i <= num / 2) {
        // condition for nonprime number
        if (num % i == 0) {
            flag = true
            break
        }
        ++i
    }

    if (!flag)
        println("$num is a prime number.")
    else
        println("$num is not a prime number.")
}
```

运行该程序时，输出为：

```kt
33 is not a prime number.
```

在上面的程序中，使用`while`循环代替`for`循环。 循环一直运行到`i <= num/2`为止。 在每次迭代中，检查`num`是否除以`i`，并将`i`的值增加 1。

访问此页面以了解如何[显示两个时间间隔](/kotlin-programming/examples/prime-number-interval "Display all prime numbers between two intervals ")之间的所有质数。