2735: 练33.2 素数判断
内存限制:64 MB
时间限制:1.000 S
评测方式:文本比较
命题人:
提交:118
解决:18
题目描述
一天,尼克给了格莱尔几个数字,要求他判断是否是素数。现在,请你试编一程序,输入一个自然数,判断是不是素数。
说明:如果一个大于$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; }