ここは、素数であるかを調べる関数(サブルーチン、メソッド)を作りましょう。
問題の最後に、素数とは1と自分自身でしか割り切れないとあります。
よって、2 〜 自分自身-1 のうちどれか1つでも割り切れたらその数は素数ではない、ということです。
関数ができたら、2〜nでその関数が真を返す数がいくつあるかを数えます。
// //A012.java // import java.io.*; public class A012{ public static void main(String[] args)throws IOException{ BufferedReader br=new BufferedReader(new InputStreamReader(System.in)); int n=Integer.parseInt(br.readLine()); int count=0; //2から始めてもいいかな。 for(int i=2;i<=n;i++){ if(isSosu(i)){ count++; } } System.out.println(count); br.close(); } //素数かどうか調べる private static boolean isSosu(int target){ //2からtarget-1のどれかで割り切れたら素数でない for(int i=2;i<target;i++){ if(target%i==0){ return false; } } return true; } } |