题目1163:素数
时间限制:1 秒
内存限制:32 兆
特殊判题:否
提交:5648
解决:1871
-
题目描述:
-
输入一个整数n(2<=n<=10000),要求输出所有从1到这个整数之间(不包括1和这个整数)个位为1的素数,如果没有则输出-1。
-
输入:
-
输入有多组数据。
每组一行,输入n。
-
输出:
-
输出所有从1到这个整数之间(不包括1和这个整数)个位为1的素数(素数之间用空格隔开,最后一个素数后面没有空格),如果没有则输出-1。
-
样例输入:
-
100
-
样例输出:
-
11 31 41 61 71
import java.util.Scanner; public class Main{ /** * @param args */ public static void main(String[] args) { Scanner scanner = new Scanner(System.in); while( scanner.hasNext() ){ int n = scanner.nextInt(); int count = 0; for (int i = 1; i < n; i++) { if(isPrime(i) && i%10 == 1){ if(count == 0){ System.out.print(i); }else{ System.out.print(" " + i); } count++; } } if(count == 0){ System.out.println(-1); }else{ System.out.println(); } } } private static boolean isPrime(int n) { int k = (int)Math.sqrt(n) + 1; if( n<=1 ){ return false; } for (int i = 2; i < k; i++) { if(n % i == 0){ return false; } } return true; } } /************************************************************** Problem: 1163 User: yihukurama Language: Java Result: Accepted Time:100 ms Memory:16980 kb ****************************************************************/