Codeforces #26 A "Almost Prime"
問題:http://codeforces.com/contest/26/problem/A
nまでの素因数的なものを計算してった.
なんか冗長っぽい.
import java.util.ArrayList; import java.util.HashSet; import java.util.List; import java.util.Scanner; import java.util.Set; public class A { public static void main(String[] args) throws Exception { List<Set<Integer>> list = new ArrayList<Set<Integer>>(); int n = new Scanner(System.in).nextInt(); int c = 0; for(int i = 1; i <= n; ++i){ Set<Integer> divs = new HashSet<Integer>(); for(int d : f(i)){ Set<Integer> dl = list.get(d-1); if(dl.size()>0){ divs.addAll(dl); }else{ divs.add(d); } } list.add(divs); if(divs.size()==2){ ++c; } } System.out.println(c); } static Set<Integer> f(int n) { Set<Integer> set = new HashSet<Integer>(); for (int i = 2, j = n; i < j; i++) { if (n % i == 0) { set.add(i); set.add(j = n / i); } } return set; } }