输入一个数,怎么用C语言找比它小的最大素数?

2025-02-22 23:34:12
推荐回答(3个)
回答1:

#include 
#include 
#define TRUE 1
#define FALSE 0
int isPrime(int n)
{
    int i;
    for(i=2;i<=(int)sqrt(n);i++)
        if(n%i == 0)
            return FALSE;
    return TRUE;
}
int main()
{
int n,i;
scanf("%d",&n);
if(n<2)
{
printf("Input Error!\n");
return -1;
}
for(i=n-1;i>=2;i--)
if(isPrime(i))
{
printf("比%d小的最大素数是%d\n",n,i);
break;
}
return 0;
}

示例运行结果:

100

比100小的最大素数是97

回答2:

从这个数开始,到2循环。 

分别判断素数即可。

#include 
int main()
{
    int n, i, j;;
    scanf("%d",&n);
    while(--n)
    {
        for(i = 2; i < n; i ++)
            if(n%i==0) break;
        if(i == n)
            break;
    }
    printf("%d\n", n);
    
    return 0;
}

回答3:

倒序的循环,判断素数、第1个~~~~~~~~~