判断素数
输入格式: 输入在第一行给出一个正整数N(≤ 10),随后N行,每行给出一个小于2 31 的需要判断的正整数。
输出格式: 对每个需要判断的正整数,如果它是素数,则在一行中输出Yes,否则输出No。
输入样例: 2 11 111
输出样例: Yes No
在这里先感谢社团里有一位大佬的分享。他指出
在拜读了这一发现后我也是通过了这道判断素数的题目
现在放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");
}
}
}
}