回答受付が終了しました

プログラミングpythonの問題です。 whileを使ったプログラムの作成方法を教えてもらいたいです。ちなみに高一レベルだとありがたいです。

画像

回答(3件)

import sys # 整数チェック後、int型に変換 if (val := input('n = ')).isdigit(): input_number = int(val) else: print('整数以外が入力された');sys.exit() # 1~画面入力値までの値で画面入力値が割り切れることを確認し、割り切れたものだけのリストを作る answer = [i for i in range(1, input_number + 1) if input_number % i == 0] # リストをアンパックしながら、改行を挟み込んで表示 print(*answer, sep='\n')

この回答はいかがでしたか? リアクションしてみよう

高校生にもなったら、例えば、10000000000の約数は、1から√10000000000の100000までについては、割り切れるかどうか確かめればいいけど、100001~10000000000を馬鹿正直に処理すると9999900000回も割り算する羽目になるけど、99999~1で割れるか確かめて、割り切れたらその割った答を表示すれば99999回で済むことくらい、分かって当然だよね?

n = int(input('> ')) i = 0 while i < n:     i += 1     if n % i == 0:         print(i) > ちなみに高一レベルだとありがたいです。 「高一レベル」ってどういう意味? そんなレベルは、存在しませんよ。