結果
| 問題 | 
                            No.7 プライムナンバーゲーム
                             | 
                    
| コンテスト | |
| ユーザー | 
                             | 
                    
| 提出日時 | 2015-06-11 12:22:15 | 
| 言語 | PHP  (843.2)  | 
                    
| 結果 | 
                             
                                WA
                                 
                             
                            
                         | 
                    
| 実行時間 | - | 
| コード長 | 967 bytes | 
| コンパイル時間 | 93 ms | 
| コンパイル使用メモリ | 31,028 KB | 
| 実行使用メモリ | 31,476 KB | 
| 最終ジャッジ日時 | 2024-07-06 15:34:15 | 
| 合計ジャッジ時間 | 3,068 ms | 
| 
                            ジャッジサーバーID (参考情報)  | 
                        judge5 / judge1 | 
(要ログイン)
| ファイルパターン | 結果 | 
|---|---|
| other | AC * 11 WA * 6 | 
コンパイルメッセージ
No syntax errors detected in Main.php
ソースコード
<?php
define("NOT_REACHED", 0);
define("REACHED", 3);
define("REACH_EVEN", 1);
define("REACH_ODD", 2);
$n = trim(fgets(STDIN));
$prime_array = array();
for ( $i=2; $i<=$n; $i++ ) {
	if ( is_prime($i) ) {
		$prime_array[] = $i;
	}
}
$result = array_fill(0, $n+1, NOT_REACHED);
$result[$n] = REACH_EVEN;
for ( $i=$n; $i>=0; $i-- ) {
	if ( $result[$i] === NOT_REACHED ) {
		continue;
	}
	for ( $j=0; $j<count($prime_array); $j++ ) {
		if ( $i-$prime_array[$j] < 0 ) {
			break;
		}
		switch ( $result[$i] ) {
			case REACH_EVEN:
				$result[$i-$prime_array[$j]] |= REACH_ODD;
				break;
			case REACH_ODD:
				$result[$i-$prime_array[$j]] |= REACH_EVEN;
				break;
			case REACHED:
			default:
			break;
		}
	}
}
if ( ($result[0] == REACH_ODD ) || ($result[1] == REACH_ODD)  ) {
	echo 'Lose'.PHP_EOL;
}
else {
	echo 'Win'.PHP_EOL;
}
function is_prime($number) {
	for ( $i=2; $i<=sqrt($number); $i++ ) {
		if ( !($number % $i) ) {
			return FALSE;
		}
	}
	return TRUE;
}