Skip to content

Instantly share code, notes, and snippets.

@masakid
Created March 11, 2014 14:47
Show Gist options
  • Save masakid/9487275 to your computer and use it in GitHub Desktop.
Save masakid/9487275 to your computer and use it in GitHub Desktop.
PrimeNumberSumUp(素数のカウント)
import java.util.ArrayList;
import java.util.List;
/**
* PrimaryNumberSumup
* @author masakid
*
*/
public class Main {
//一番最初の素数
public static int FIRST_PRIMARY = 2;
public static void main(String[] args) {
/* 素数の数え方
* 自分自身とそれ自身でしか割り切れない数
* 与えられた数-1まで1からカウントアップ
* カウントアップする際、その数に対してそれでしか割れないものをカウントしていく
*/
//引数を格納
List<Integer> argumentNumList = new ArrayList<Integer>();
for(String str : args){
argumentNumList.add(Integer.parseInt(str));
}
//一番最初の素数
int startPrimary = FIRST_PRIMARY;
//素数のカウント
int primaryCount = 0;
//素数のカウント処理
for(Integer targetNum : argumentNumList){
//素数判定を行いカウントアップ
for(int i = startPrimary; i < targetNum ; i++){
if(checkPrimaryNum(i)){
primaryCount++;
}
}
//次回の引数はこの続きからカウント
startPrimary = targetNum;
//答えの表示
System.out.println(targetNum + ":" + primaryCount);
}
}
/**
* 素数かどうかの判定
* 最初の素数2から自分自身までの数で割り切れれば素数ではない
* @param num
* @return true / false
*/
public static boolean checkPrimaryNum(Integer num){
//素数であるフラグ
boolean isPrimary = true;
for(int i=FIRST_PRIMARY ; i<num ; i++){
if(num%i==0){
isPrimary = false;
}
}
return isPrimary;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment