题目1163:素数(2008年北京航空航天大学计算机研究生机试真题)

来源:互联网 发布:mac快捷键 编辑:程序博客网 时间:2024/06/05 04:52
题目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****************************************************************/


0 0
原创粉丝点击