1 秒
内存限制:32 兆
特殊判题:否
提交:6299
解决:2102
-
题目描述:
-
输入一个整数n(2<=n<=10000),要求输出所有从1到这个整数之间(不包括1和这个整数)个位为1的素数,如果没有则输出-1。
-
输入:
-
输入有多组数据。
每组一行,输入n。
-
输出:
-
输出所有从1到这个整数之间(不包括1和这个整数)个位为1的素数(素数之间用空格隔开,最后一个素数后面没有空格),如果没有则输出-1。
-
样例输入:
-
100
-
样例输出:
-
11 31 41 61 71
-
-
来源:
- 2008年北京航空航天大学计算机研究生机试真题
-
import java.util.Scanner; import java.util.Arrays; public class Main { public static void main(String[] argc){ Scanner in=new Scanner(System.in); int[] a=new int[10005]; Arrays.fill(a, 0); a[0]=a[1]=1; for(int i=2;i<10005;i++) for(int j=i+i;j<10005;j+=i) a[j]=1; while(in.hasNext()){ int n=in.nextInt(); int[] b=new int[10000]; int k=0; for(int i=2;i<n;i++){ if(a[i]==0&&i%10==1) b[k++]=i; } if(k==0) System.out.println("-1"); else { for(int i=0;i<k-1;i++) System.out.print(b[i]+" "); System.out.println(b[k-1]); } } in.close(); } }