@[wch666](/user/778382) 质数判断写挂了
by InversionShadow @ 2023-05-20 20:46:14
@[xingwuKling](/user/915253) 80分
by TooAmazing @ 2023-05-20 20:52:22
```c
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cmath>
#include<cstring>
using namespace std;
bool isprime(int x){//判断是否素数
if(x<=1) return false;//如果小于2,一定不是素数
for(int i=2;i<=sqrt(x);i++){//为什么要到sqrt(x)呢,因为如果有一个大于sqrt(n)的数可以被n整除,那么必有一个数n/i也可以被n整除且小于i
if(x%i==0) return false;//如果可以整除,那么不是素数
}
return true;//是素数
}
int main(){
int n,a;
cin>>n;
for(int i=1;i<=n;i++){
cin>>a;
if(isprime(a)){
cout<<a<<" ";//是素数,就输出
}
}
return 0;
}
```
by TooAmazing @ 2023-05-20 20:55:10
把判断质数的代码改成这样应该可以过,
wa的那个数据是第一个数据吧
输入
7
1 2 3 4 5 1 2
输出
2 3 5 2
```cpp
bool zspd(int a)
{
bool flag = true;
if (a == 1)return false;
for (int j = 2; j <= sqrt(a); j++)
{
if (a % j == 0)
{
return false;
break;
}
}
return true;
}
```
by xingwuKling @ 2023-05-20 20:59:35
ac解法
by TooAmazing @ 2023-05-20 20:59:44
@[xingwuKling](/user/915253) 已经return了就不用break了
by TooAmazing @ 2023-05-20 21:00:45
是的,他的这个代码要特判1
by xingwuKling @ 2023-05-20 21:01:15
@[tangyueyang](/user/780034) 是的有些小瑕疵,偶然写代码的习惯罢了,break可以不写
by xingwuKling @ 2023-05-20 21:03:51
要判断ai=1这个特例
by chengxuyuan666 @ 2023-06-02 14:51:53
```
#include<bits/stdc++.h>
using namespace std;
int No(int s) {
if (s < 2) {
return 0;
}
for (int x = 2; x * x <= s; x++) {
if (s % x == 0) {
return 0;
}
}
return 1;
}
int main() {
int n;
cin >> n;
int a[n];
for (int i = 0; i < n; i++) {
cin >> a[i];
}
for (int i = 0; i < n; i++) {
if (No(a[i])) {
cout << a[i] << " ";
}
}
return 0;
}
```
by jiangjinke @ 2023-06-15 15:08:36