问题描述:
给定一个数n,要求判断其是否为素数(0,1,负数都是非素数)。
输入:
测试数据有多组,每组输入一个数n。
输出:
对于每组输入,若是素数则输出yes,否则输入no。
#include <cstdio>
#include <iostream>
#include <cmath>
using namespace std;
int main(){
int n;
while (~scanf("%d", &n)){
bool sign = false;
if (n == 2){
printf("yes");
continue;
}
if (n == 1){
printf("no");
continue;
}
for (int i = 2; i <= sqrt(n); ++i){
if (n % i != 0){
sign = true;
continue;
}
else{
printf("no");
sign = false;
break;
}
}
if (sign) printf("yes");
}
return 0;
}
改进:
#include <cstdio>
#include <iostream>
#include <cmath>
using namespace std;
bool Judge(int n) {
if (n < 2){
return false;
}
for (int i = 2; i <= sqrt(n); ++i){
if (n % i == 0){
return false;
}
}
return true;
}
int main(){
int n;
while (~scanf("%d", &n)){
if (Judge(n)) {
printf("yes");
} else {
printf("no");
}
}
return 0;
}