AOJ0044 Prime Number II
問題リンク Prime Number II
- 解法
素数と来たら自分はエラトステネスの篩を反射的に作ります。
N<=50000より大きい素数も判定したいので適当に篩の大きさを55000にしています。
後は、Nから2方向の素数を探しに行くだけです。
- ソース
import java.util.Arrays; import java.util.Scanner; //Prime Number II public class AOJ0044 { public static void main(String[] args) { boolean[] p = new boolean[55000]; Arrays.fill(p, true); p[0]=p[1]=false; for(int i=2;i<55000;i++)if(p[i])for(int j=i*2;j<55000;j+=i)p[j]=false; Scanner sc = new Scanner(System.in); while(sc.hasNext()){ int n = sc.nextInt(); int d = n-1; int u = n+1; while(!p[d])d--; while(!p[u])u++; System.out.println(d+" "+u); } } }