📜  C |回路和控制结构|问题7(1)

📅  最后修改于: 2023-12-03 14:59:38.117000             🧑  作者: Mango

C语言回路和控制结构问题7

问题描述

编写一个程序,输入一个整数,判断这个整数是否为质数。

解法分析

质数定义为除了1和自己,不能被其他数整除的正整数。因此我们可以从2开始,依次判断这个数能否被2至它的平方根之间的数整除。如果都不能被整除,则说明这个数是质数。

代码实现
#include <stdio.h>
#include <math.h>

int main() {
    int n, i, is_prime = 1;
    printf("请输入一个整数:");
    scanf("%d", &n);
    if (n <= 1) {
        is_prime = 0; //1不是质数
    } else {
        for (i = 2; i <= sqrt(n); i++) {
            if (n % i == 0) {
                is_prime = 0;
                break;
            }
        }
    }
    if (is_prime) {
        printf("%d是质数\n", n);
    } else {
        printf("%d不是质数\n", n);
    }
    return 0;
}

这段代码首先通过scanf函数输入一个整数。然后判断这个数是否小于等于1,如果小于等于1则不是质数;否则从2开始,到这个数的平方根之间的数,逐个判断是否能被整除。如果能被整除,则说明这个数不是质数,将is_prime标志位设为0并跳出循环。最后根据is_prime的值输出判断结果。

总结

判断一个数是否为质数是常见的算法问题,其解法也比较简单。在实现时应当注意输入的数字可能为负数和0的情况,以及循环范围的确定等。