Programmers-残り1の数字を検索(Python)



質問する


パラメータは
  • 自然数nである.nをxの残りを1とする最小自然数xで除算する解関数を完了してください.答えが常に存在することを証明することができます.
  • せいげんじょうけん

  • 3 ≤ n ≤ 1,000,000
  • I/O例


    numreturn1031211

    I/O例説明


  • I/O例#1
  • 10を3で割った残りの数は1であり、3未満の自然数では問題の条件を満たすことができないため、3を返さなければならない.

  • I/O例#2
  • 12を11で割った残りは1であり、11未満の自然数では問題の条件を満たすことができないため、11を返さなければならない.
  • ϥコード-初期解

    
    # (1)
    
    from primePy import primes
    
    def solution(n):
        answer = 0 
    
        primes_to_n = primes.upto(n)
       
        print(primes_to_n)
    
    
        for i in primes_to_n:
            if n % i == 1:
                print(i)
    
    			answer = i
                break
    
        return answer
    
    n = 10
    print(solution(n)) # 출력 예 : 3 
  • (1):この問題は少数の問題を利用して解決しようとしている.与えられた数字がnの場合、n以下のすべての小数を判別し、nをn以下の小数で割った場合、残りの1を生成できるすべての小数の中で最小の小数をprimpyライブラリにインポートしようとします.プログラミングに問題はありませんが、プログラマーでコードを実行すると、
    と同じ情報が出力される.したがって,この方式はプログラマーには適切ではない.しかし、primePyライブラリの存在を知ることに満足しています.
  • ϥコード-最終解答

    def solution(n):
        answer = 0 
    
        # (1)
        sieve = [True] * n
    
        # (2)
        m = int(n ** 0.5)
    
        for i in range(2, m + 1):
            if sieve[i] == True: # (3)
                for j in range(i+i, n, i): # i (4)
                    sieve[j] = False
    
        # (5)
        # (6)
        seive_list = [i for i in range(2, n) if sieve[i] == True]
    
        # (7)
        # (8)
        for value in seive_list:
            if n % value == 1:
                answer = value
                break
    
        return answer
    
    n = 12
    print(solution(n)) # 출력 예 : 3
  • この問題は「エラトスの体」の方法を用いて解答した.
  • (1):テストステロンの体外初期化:n元素のTrue設定(少数とみなす)
  • (2):nの最大薬水がsqrt(n)以下であることから、i=sqrt(n)
  • が検出する.
  • (3):iが少数の場合は
  • (4):i後i倍数がエラー判定
  • (5):sieveで取得した少数のリストをseive list
  • に代入する
  • (6):
  • (真または偽)
  • (7):seive listで問題を検索するために必要な最小数
  • (8):最小数が見つかった場合、for文
  • を終了します.

    📝 結果



    😃 に感銘を与える

  • 「エラトスの体」について初めて知りました.私なら2からnまで一つ一つ手に入れると思いますが、もっと時間を節約する方法を知って嬉しいです.
  • は、PrimePyライブラリも理解しています.実際,Visual Studioでは,実行時間のみではPrimePyライブラリへの移行が「エストロゲン」よりもはるかに速いが,プログラマーでは実行できない点が多少残念である.
  • 👍 Irishのすべてのコードを表示


    -> Irish Github