>>799 import java.util.List; public class Yakusuu { public static List<Long> getMeasures(long n) { if (n <= 0) return null; List<Long> measures = new java.util.ArrayList<Long>(); long s = (long)Math.sqrt(n); for (long i = 1; i <= s; i++) if (n % i == 0) measures.add(i); for (int i = measures.size() - (s * s == n ? 2 : 1); i >= 0; i--) measures.add(n / measures.get(i)); return measures; } public static void main(String[] args) throws java.io.IOException { System.out.println("nを入力してください"); long n = Long.parseLong(new java.io.BufferedReader(new java.io.InputStreamReader(System.in)).readLine()); List<Long> ms = getMeasures(n); if (ms == null) System.out.println("nは正の整数を入力してください "); else for (long m : ms) System.out.println(m + "は" + n + "の約数です"); } } どんな正の整数にも対応するようにするならlongでなくBigIntegerを使うべきか