与えられた範囲で、連続している素数は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 件のコメント :
コメントを投稿