与えられた範囲で、連続している素数は2と3だけということは想像がつく。
それ以外は、素数でなければ1回で済むし、素数であれば-1して素数でなくす。
class MagicDiamonds { public: long long minimalTransfer(long long n) { if (n == 1) return 1; if (n == 2) return 2; if (n == 3) return 3; for (lli m = 2; m * m <= n; ++m) { if (n % m == 0) return 1; } return 2; } };
0 件のコメント :
コメントを投稿