判断素数

输入格式: 输入在第一行给出一个正整数N(≤ 10),随后N行,每行给出一个小于2 31 的需要判断的正整数。

输出格式: 对每个需要判断的正整数,如果它是素数,则在一行中输出Yes,否则输出No。

输入样例: 2 11 111

输出样例: Yes No

在这里先感谢社团里有一位大佬的分享。他指出 alt

在拜读了这一发现后我也是通过了这道判断素数的题目

现在放ac代码

#include<bits/stdc++.h>
#include<math.h>
using namespace std;
int ss(int a);
int main()
{
    int t;
    cin >> t;
    while(t--)
    {
        int a;
        cin >> a;
        if(ss(a)==0)
            printf("No\n");
        else
            printf("Yes\n");
    }
}
int ss(int a)
{
    if(a<=1)
        return 0;
    else if(a==2)
        return 1;
    else if(a%2==0)
        return 0;
    for(int i=3;i<=sqrt(a);i+=2)
    {
        if(a%i==0)
            return 0;
    }
    return 1;
}

这里还有一份Java版本的代码

import java.util.Scanner;

public class Main
{
    public static void main(String[] args)
    {
        Scanner sc=new Scanner(System.in);
        int t=sc.nextInt();
        for(int e=0;e<t;e++)
        {
            int c=0;
            int a=sc.nextInt();
            if(a==2)
                System.out.println("Yes");
            else if(a<=1||a%2==0)
                System.out.println("No");
            else
            {
                for(int i=3;i<=Math.sqrt(a);i+=2)
                {
                    if(a%i==0)
                    {
                        c++;
                        System.out.println("No");
                        break;
                    }
                }
                if(c==0)
                    System.out.println("Yes");
            }
        }
    }
}