日にちの素因数分解
x 月 y 日を z = 100 * x + y と表現したとき、z の約数の個数が最も多くなるような x と y を求めよ。
この問題を解いてくれた物理の後輩に感謝。答えはふたつあるそうです。
勘で解いたら間違えていたよ.仕方がないのでまたもコンピュータを使ったよ.最後に出力とソースを載せておくから暇な人は見るがいいよ.でも
static boolean ifPrime(int n){ // n<37 switch(n){ case 2:case 3:case 5:case 7:case 11:case 13:case 17:case 19: case 23:case 29:case 31: return true; default: return false; } }
これはひどいと自分でも思う.だけどさ,ここで
for(int i=2;i<=Math.sqrt(n);i++) if(n%i==0) return false; return true;
とかやるの無駄だし.11 個しかないんだからリスト作っちゃえばいいじゃん.
続きを読む