2735: 练33.2 素数判断
内存限制:64 MB
时间限制:1.000 S
评测方式:文本比较
命题人:
提交:131
解决:23
题目描述
一天,尼克给了格莱尔几个数字,要求他判断是否是素数。现在,请你试编一程序,输入一个自然数,判断是不是素数。
说明:如果一个大于$1$ 的自然数的因数只有两个($1$和它本身),那么这个数就是素数,否则就是合数。特别的,$1$既不是素数也不是合数。
说明:如果一个大于$1$ 的自然数的因数只有两个($1$和它本身),那么这个数就是素数,否则就是合数。特别的,$1$既不是素数也不是合数。
输入
一行,一个整数。
输出
一行:是素数,输出“
Y” ;否则,输出“N”。
样例输入 复制
18
样例输出 复制
N
提示
#include<iostream>
using namespace std;
int main()
{
long long i,n;
bool flag;
cin>>n;
flag=true; //假设 n 为素数
//true 代表素数,false 代表合数
for(i=2;i<n;i++) //从 2 循环到 n-1
//任意一个自然数(n)都能被 1 和它本身(n)整除
if(n%i==0) //判断是否整除
//能整除,为合数,即不是素数
//不能整除,则继续进行循环
{
flag=false; //将 flag 标为 false,即不是素数
break; //能被整除,直接跳出循环
}
if(flag&&n!=1) cout<<"Y";
else cout<<"N"; //输出
return 0;
}
#include<bits/stdc++.h>
using namespace std;
long long n,i;
int main(){
cin>>n;
if(n==0||n==1){
cout<<"N";
return 0;
}
for(i=2;i<n;i++){
if(n%i==0){
cout<<"N";
return 0;
}
}
cout<<"Y";
return 0;
}