Pythonアルゴリズム001|k次約数
1.K番目の薬液
ある自然数pとqがある場合、pがqで除算され、残りが0である場合、qはpの約数である.
6を例に
6 ÷ 1 = 6 … 0
6 ÷ 2 = 3 … 0
6 ÷ 3 = 2 … 0
6 ÷ 4 = 1 … 2
6 ÷ 5 = 1 … 1
6 ÷ 6 = 1 … 0
だから6の約数は1 2 3 6で全部で4つです
2つの自然数NとKが与えられると、Nの約数の中で最小数のプログラムが出力される
記入してください.
■説明の入力
最初の行では、NとKはスペースを隔てて与えられる.Nは1以上10000以下である.Kが1 Nより大きい
より低い
■出力説明
第1行は、Nの約数のうちK番目の小数を出力する.Nの約数がK個より少ない場合.
K番目の約数が存在しない場合は、-1を出力します.
■入力例1
6 3
■出力例1
3
<私のコード>
import sys
sys.stdin=open("input.txt", "rt")
a, b=map(int, input().split())
lst = []
for i in range(1,a+1) :
if a%i==0 :
lst.append(i)
if len(lst)<b :
print(-1)
else :
print(lst[b-1])
問題では、変数はn,kとして指定されます.n, k = map(int, input().split())
<解答>
import sys
sys.stdin = open("input.txt", "rt")
cnt=0
for i in range(1, n+1) :
if n%i ==0 :
cnt+=1
if cnt==k :
print(i)
break
else :
print(-1)
『反省点』
『学んだこと』
<第2話毒ガス放出>
n, m = map(int, input().split())
a=sorted(list([i+1 for i in range(n) if n%(i+1)==0]))
if m > len(a) :
print(-1)
else :
print(a[m-1])
<エクストララーニング>
list( [ i * 2 if i>3 else i for i in temp ] )
「2に2を乗じて、3より大きければやるか、そのまま入れます.「for文でtempから持ってきた」
list( [ i for i in temp if i > 3 ])
:elseがいないときはifを後ろに書きます
Reference
この問題について(Pythonアルゴリズム001|k次約数), 我々は、より多くの情報をここで見つけました https://velog.io/@myway00/파이썬-k번째-약수テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol