2735: 练33.2 素数判断

内存限制:64 MB 时间限制:1.000 S
评测方式:文本比较 命题人:
提交:118 解决:18

题目描述

一天,尼克给了格莱尔几个数字,要求他判断是否是素数。现在,请你试编一程序,输入一个自然数,判断是不是素数。
说明:如果一个大于$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;
}