#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循环。
分别判断素数即可。
#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;
}
倒序的循环,判断素数、第1个~~~~~~~~~