问题 C: 素数
题目描述
输入一个整数n(2<=n<=10000),要求输出所有从1到这个整数之间(不包括1和这个整数)个位为1的素数,如果没有则输出-1。
输入
第一行输入数据组数T,接下来是T行,每行输入一个整数n。
输出
对每组案例,输出所有从1到这个整数之间(不包括1和这个整数)个位为1的素数(素数之间用空格隔开,最后一个素数后面没有空格),如果没有则输出-1。
样例输入
2
2
70
样例输出
-1
11 31 41 61
import java.util.Scanner;
public class C {
public static boolean judge(int num)
{
for(int i=2;i<=Math.sqrt(num);i++)//不能是i<=num,否则时间超限
{
if(num%i==0)
{
return false;
}
}
return true;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner scanner=new Scanner(System.in);
int n=scanner.nextInt();
while(n>0)
{
int m=scanner.nextInt();
int count=0;
for(int i=11;i<m;i=i+10)
{
if(judge(i))
{
count++;
if(i==11)
System.out.printf("%d",i);
else
System.out.printf(" %d",i);
}
}
if(count!=0)
System.out.printf("\n");//不要忘了这个换行
if(count==0)
System.out.println("-1");
n--;
}
}
}