#include <stdio.h>
#include <math.h>
typedef unsigned int uint32;
/* 判断x是不是素数 */
bool isPrime(uint32 x)
{
uint32 i = 0;
if (0 == x || 1 == x)
{
return false;
}
/* 如果2到sqrt(x)之间的每一个整数都不能被x整除那么x就是素数 */
for (i = 2; i < (uint32)sqrt(x); i++)
{
if (x % i == 0)
{
return false;
}
}
return true;
}
/* 小于x的最大素数 */
void getMaxPrime(uint32 x)
{
uint32 i = 0;
if (x <= 2)
{
printf("No prime less than 2.\n");
return;
}
/* 从x-1开始遍历 */
for (i = x - 1; i >= 2; i--)
{
if (isPrime(i))
{
printf("%u is the max prime less than %u.\n", i, x);
return;
}
}
}
int main()
{
uint32 a = 0;
scanf("%u", &a);
getMaxPrime(a);
return 0;
}
枚举[01] -- 小于N的最大素数
最新推荐文章于 2024-08-09 17:45:27 发布