★★ Java の宿題ここで答えます Part 63 ★★ at TECH
[2ch|▼Menu]
821:デフォルトの名無しさん
07/11/21 16:16:56
>>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を使うべきか


次ページ
続きを表示
1を表示
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

4548日前に更新/347 KB
担当:undef