九度OJ--Q1163

import java.util.ArrayList;
import java.util.Scanner;

/*
* 题目描述:
* 输入一个整数n(2<=n<=10000),要求输出所有从1到这个整数之间(不包括1和这个整数)个位为1的素数,如果没有则输出-1。
* 输入:
* 输入有多组数据。
* 每组一行,输入n。
* 输出:
* 输出所有从1到这个整数之间(不包括1和这个整数)个位为1的素数(素数之间用空格隔开,最后一个素数后面没有空格),如果没有则输出-1。
* 样例输入:
* 100
* 样例输出:
* 11 31 41 61 71
*/

public class q1163 {

  public static void main(String[] args) {

    Scanner scanner = new Scanner(System.in);

    while(scanner.hasNext()) {

      int n = scanner.nextInt();
      int flag = 0; // 当flag=0时,表示不存在要求中的素数
      ArrayList array = new ArrayList();

      for(int i=2; i<n; i++) {

        int flag2 = 0; // 标记某一个数是否为质数
        for(int j=2; j<i/2+1; j++) {

          if(i%j == 0) {
            flag2 = 0;
            break;
          }
          else {
            flag2 = 1;
          }

        }

        if(flag2 == 1 && i%10 == 1) {

          flag = 1;
          array.add(i);

        }
        else {
          continue;
        }

      }

      if(flag == 1) {
        Object[] a = new Object[array.size()];
        a = array.toArray();

        for(int m=0; m<a.length; m++) {
          if(m == a.length-1) {
            System.out.println(a[m]);
          }
          else {
            System.out.print(a[m] + " ");
          }
        }
      }
      else if(flag == 0) {
        System.out.println("-1");
      }

    }

  }

}

原文地址:https://www.cnblogs.com/yg6405816/p/5466890.html