AOJ0150 Twin Prime
問題リンク Twin Prime
- 解法
エラトステネスの篩を作ります。
Nが大した大きさじゃないので、Nから数を下げていき、NとN-2が共に素数であるようなものを見つければいいです。
- ソース
import java.util.Arrays; import java.util.Scanner; //Twin Prime public class AOJ0150 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); boolean[] p = new boolean[10001]; Arrays.fill(p, true); p[0]=p[1]=true; for(int i=2;i<10001;i++)if(p[i])for(int j=2*i;j<10001;j+=i)p[j]=false; while(true){ int n = sc.nextInt(); if(n==0)break; for(int i=n;i>=5;i--)if(p[i]&&p[i-2]){System.out.println((i-2)+" "+i);break;} } } }