题目描述
输入一个数,判断这个数,是否是素数,是输出YES,否输出NO
素数:一个大于1的自然数,除了1和它本身外,不能被其他自然数整除,换句话说就是该数除了1和它本身以外不再有其他的因数;
输入
输入一个数,0<=a<=10000
输出
输出YES 或者NO
样例输入 Copy
6
样例输出 Copy
NO
更容易理解的写法,以及加了一点注释信息
#include <iostream>
using namespace std;
int main()
{
int input;
cin >> input;
if (input <= 1) {
cout<< "NO" <<endl;
return 0;
}
int i = input - 1;
while(i - 1) {
if (input % i == 0) {
cout<< "NO" <<endl;
break;
}
i--;
}
if(i == 1) {
cout<< "YES"<<endl;
}
return 0;
}
#include<iostream>
using namespace std;
int main()
{
int a,flag=0;
while(1)
{
cin>>a;
if(a<=10000||a>=0)
{
break;
}
}
//判断是不是素数
//思想:判断2~n-1有没有n的约数
for(int i=2;i<a-1;i++)
{
if(a%i==0)
{
flag=1;
break;
}
}
switch(flag)
{
case 1:
cout<<"NO"<<endl;
break;
case 0:
cout<<"YES"<<endl;
break;
}
return 0;
}
拿去不用谢
#include <iostream>
#include <math.h>
using namespace std;
//判断是否为素数
int isPrimeNumber(int a){
if(a<=1){
return 0;
}
int s = (int)sqrt(a);
for(int i=2;i<=s;i++){
if(a%i==0){
return 0;
}
}
return 1;
}
int main()
{
int n;
cin>>n;
if(n<0||n>10000){
cout<< "请输入0到10000之间的数字" <<endl;
}else{
if(isPrimeNumber(n)){
cout<< "YES" <<endl;
}else{
cout<< "NO" <<endl;
}
}
return 0;
}
#include<iostream>
using namespace std;
int main(){
bool flag=true;//定义一个bool类型的变量,用于判断
int num=0;
cout<<"输入一个整数:";
cin>>num; //接收键盘输入的整数
for(int i=2;i<num;i++){
if(num%i==0){
flag=false; //如果能找到整除的数,说明当前的数不是素数,直接结束循环
break;
}
}
if(flag){ //根据bool值来判断是否是素数
printf("YES\n");
}else{
printf("NO\n");
}
return 0;
}