2581-小数
質問する
自然数MとNが与えられた場合、M以上N以下の自然数の中からすべての小数を選択し、これらの小数の和の最大値を探すプログラムを書き出します.
例えばM=60、N=100、60以上100以下の自然数のうち、61、67、71、73、79、83、89、97の計8個があり、これらの数の和は620であり、最大値は61である.
入力
入力された第1行M、第2行N.
MとNは10000以下の自然数であり、MはN以下である.
しゅつりょく
M以上N以下の自然数のうちの少数を探し出し,第1行でその和を出力し,第2行でその中の最大値を出力する.
ただし、M以上N以下の自然数に少数がなければ、1行目に−1が出力される.
Solution
Python
M = int(input())
N = int(input())
if M == 1:
M += 1
sosu_sum = 0
sosu = []
for a in range(M,N+1):
flag = 0
for i in range(2,a):
if a%i == 0:
flag = -1
break
if flag == 0:
sosu.append(a)
sosu_sum = sosu_sum + a
if sosu_sum == 0:
print(-1)
else:
print(sosu_sum)
print(sosu[0])
Reference
この問題について(2581-小数), 我々は、より多くの情報をここで見つけました https://velog.io/@sysh9498/백준-2581-소수テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol