ブルーブリッジカップ、最大最小公約数、python
2200 ワード
タイトルの説明
構想
nが奇数である場合、nとn−2は奇数であり、n−1は偶数である場合、彼らの3つの公約数は2ではないに違いないが、この3つの数は連続しているため、2より大きい数はいずれも彼らまたはその中の任意の2つの数の公約数になることはできず、結果として彼らの3つの積である.
nが偶数である場合、n*(n−1)*(n−2)は必ずだめである.nとn−2が偶数であるため、n−2をn−3、すなわちn*(n−1)*(n−3)に変更するしかなく、この3つの数の2つの相互質があれば結果に違いない.しかし、nとn−3は3差があるので、そのうちの1つの数が3で割り切れる場合、もう1つは肯定的であってもよい.そのうちの1つができない場合、もう1つはできないに違いない.nは偶数,n−3は奇数であるため,2が彼ら二人の公因子になるはずがない.3より大きい数については、この3つの数またはその中の任意の2つの数の公約数になることは間違いないので、3を判断するだけです.
nが3を除去できると、n*(n-1)*(n-3)はだめになるに違いない.nとn-3に公約数3があるので、結果は小さくなるに違いない.n-4は偶数で、次のn*(n-1)*(n-5)=n^3-6*n^2+5*nを続けることができないが、その値は(n-1)*(n-2)*(n-3)=n^3-6*n^2+11 n-6(n>1にとって成り立つ)より小さくなるに違いない.一方,(n−1)*(n−2)*(n−3)は,前の奇数の結論から要求に合致することが分かったので,(n−1)*(n−2)*(n−3)と答えた.
nが3を除去できない場合、結果はn*(n−1)*(n−3)である.
コード#コード#
N, 1~N , 。
N。
, 。
9
504
1 <= N <= 106。
構想
nが奇数である場合、nとn−2は奇数であり、n−1は偶数である場合、彼らの3つの公約数は2ではないに違いないが、この3つの数は連続しているため、2より大きい数はいずれも彼らまたはその中の任意の2つの数の公約数になることはできず、結果として彼らの3つの積である.
nが偶数である場合、n*(n−1)*(n−2)は必ずだめである.nとn−2が偶数であるため、n−2をn−3、すなわちn*(n−1)*(n−3)に変更するしかなく、この3つの数の2つの相互質があれば結果に違いない.しかし、nとn−3は3差があるので、そのうちの1つの数が3で割り切れる場合、もう1つは肯定的であってもよい.そのうちの1つができない場合、もう1つはできないに違いない.nは偶数,n−3は奇数であるため,2が彼ら二人の公因子になるはずがない.3より大きい数については、この3つの数またはその中の任意の2つの数の公約数になることは間違いないので、3を判断するだけです.
nが3を除去できると、n*(n-1)*(n-3)はだめになるに違いない.nとn-3に公約数3があるので、結果は小さくなるに違いない.n-4は偶数で、次のn*(n-1)*(n-5)=n^3-6*n^2+5*nを続けることができないが、その値は(n-1)*(n-2)*(n-3)=n^3-6*n^2+11 n-6(n>1にとって成り立つ)より小さくなるに違いない.一方,(n−1)*(n−2)*(n−3)は,前の奇数の結論から要求に合致することが分かったので,(n−1)*(n−2)*(n−3)と答えた.
nが3を除去できない場合、結果はn*(n−1)*(n−3)である.
コード#コード#
def main():
N = int(input())
if N%2 != 0:
print(N*(N-1)*(N-2))
else:
if(N%3 == 0):
print((N-1)*(N-2)*(N-3))
else:
print(N*(N-1)*(N-3))
if __name__ == "__main__":
main()