結果

問題 No.312 置換処理
ユーザー happy-beans
提出日時 2017-03-15 19:45:26
言語 Java
(openjdk 23)
結果
AC  
実行時間 154 ms / 2,000 ms
コード長 803 bytes
コンパイル時間 3,808 ms
コンパイル使用メモリ 74,344 KB
実行使用メモリ 41,524 KB
最終ジャッジ日時 2024-11-15 12:13:46
合計ジャッジ時間 11,398 ms
ジャッジサーバーID
(参考情報)
judge3 / judge1
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other AC * 45
権限があれば一括ダウンロードができます

ソースコード

diff #

import java.util.Scanner;

public class No312 {

	public static void main(String[] args) {

		Scanner s = new Scanner(System.in);
		
		long n = s.nextLong();
		
		// n が 3 で割り切れるときは 3
		if ((n % 3) == 0) {
			System.out.println(3);
			return;
		}

		// n が 4 で割り切れるときは 4
		else if ((n % 4) == 0) {
			System.out.println(4);
			return;
		}

		// その他
		else {

			// n が 2 で割り切れるときは 2 で割った数に対して判定をする
			// 4 で割り切れる数は含まれないため、 2/n は必ず奇数。
			if ((n % 2) == 0) {
				n = n / 2;
			}
			
			long i = 3;
			double sqrt = Math.sqrt(n);
			
			while (i < sqrt) {
				
				if ((n % i) == 0) break;
				i += 2;
			}

			if (i > sqrt) i = n;
			System.out.println(i);

		}
	}
}
0