怎么写呀 我把代码给运行出来了但是还是错的
是0分为啥呀 能不能帮助求解一下
判断素数错了,i不会大于n,所以 else if(i>n) 是错误的。可以改为
int isprime(int n)
{
int i;
for(i=0;i<n;i++)
{
if(n%i==0)
return 0;
}
return 1;
}
main函数里for循环里也有问题,需要改一下。改为
for(x=m-1;x>1;x--)
{
if(isprime(x))
break;
}
在main函数加一个判断,当prime判断是素数则推寻循环打印这个数,否则继续循环;然后再把判断素数修改下即可,修改如下:
参考链接:
100以内所有的素数有那些_作业帮
#include <stdio.h>
int prime(int n){
int i;
for(i=2;i<n;i++){
if(n%i==0){
return 0;
}
}
return 1;
}
int main(void){
int m,x;
scanf("%d",&m);
int find=0;
for(x=m-1;x>1;x--){
if(prime(x)==0){
continue;
}else{
find=1;
break;
}
}
if(find==1){
printf("%d",x);
}else{
printf("没有找到小于%d的最大素数。\n",m);
}
return 0;
}