你这个有问题,我看出来了,你好好想想,有一个小问题
by sdjy20120918 @ 2024-04-24 17:05:59
`int count=m<3?1:0;`
这一行没有考虑 m ,n 均小于 3 的情况。
by co7ahang @ 2024-04-24 17:06:46
没有必要把奇数和偶数分开处理,这样会显得代码很乱。
在函数中判断就可以了。如果参数为偶数,在第一次循环 i = 2 时就会返回 false 。
```
bool is_prime(int a){
if(a<2) return false;
for(int i=2;i*i<=a;i++){
if(a%i==0) return false;
}
return true;
}
```
by co7ahang @ 2024-04-24 17:10:36
主函数就可以直接改成
```
int main(){
int m,n;
cin>>m>>n;
if(m>n)swap(m,n);
int count=0;
for(int i=m;i<=n;i++){
if(is_prime(i)){
count++;
}
}
cout<<count<<endl;
return 0;
}
```
by co7ahang @ 2024-04-24 17:13:03
@[co7ahang](/user/831011) 原来如此,感谢感谢
by nanoko4 @ 2024-04-24 17:13:16