C编程-检查素数

问题描述

我正在尝试检查给定的数字是否为质数,但是遇到了问题。这是代码:

#include <stdio.h>
#include <math.h>
#include <stdbool.h>

bool isPrime(int input)
{
    for (int i = sqrt(input); i >= 2; i--)
    {
        if (input % i == 0)
        {
            return false;
        }
    return true; 
    }
    
}

int main()
{
    int input;
    scanf("%d",&input);
    
    if (isPrime(input))
    {
        printf("Is prime number");
    } else
    {
        printf("Is not prime number");
    }
    
    return 0;
}

在我的isPrime函数的代码块中,如果我将return true;放在上述的for循环中,则在某些情况下这是错误的(例如,当input为10时) ,它将声明10是质数)。但是,如果我将return true;放在for循环之外,则可以正常工作。那有什么区别?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)