はい、インターン先でプログラミングを勉強しているものです。
今回はHacker Rankで素数かどうか判断するプログラムを作らなければいけなかったので、そのメモ程度に投稿したいと思います。
素数判断をしてみよう
まず、Hacker Rankで「Prime」という謎の英単語出てきて困惑しました。
こちらをGoogleさんに翻訳してもらったところ、素数という意味っぽいです。
そして、問題としては、入力された数字が素数かどうか判断し、素数であれば「Prime」と出力し、そうでなければ、Not primeと出力せよ、というものでした。
自分が実際に調べながら作ったコードが以下のものです。
class Prime_Number:
def Prime_determine(self,data):
if data==1:
print('Not prime')
elif data==2:
print('Prime')
else:
for i in range(2,data):
if data%i==0:
print('Not prime')
break
if i==data-1:
print('Prime')
T=int(input())
my_prime=Prime_Number()
for i in range(0,T):
data=int(input())
my_prime.Prime_determine(data)
しかし、問題が・・・
こんな感じになりました。
ほぼ初めてクラスというものを使いました。
ここまでくぐりぬけてきたカリキュラム地獄が意外と役に立ち、思ったよりも理解していました。
そして、使ってみてこんな感じに実装できました。
ただ、このコードだと処理回数が多くなり、データが大きくなると処理できなくなってしまい、Hacker Rankの問題でもデータが大きいとダメでした。
答えを見てみるとimport mathを利用しており、まだ未知の世界なので今回はこんなもんにしておきます。
最後まで読んでいただきありがとうございます。
参考にさせてもらったもの
素数判断のコード https://kconputing.hatenablog.com/entry/2017/02/19/190421