見出し画像

アルゴリズムでいこう!- 素数

素数を調べるコードを考えていきます。まずPythonで。

与えられた数字の平方根の値Kkまで割っていき割ることができれば素数ではない”ということf

このサイトで紹介されているコードです。試し割り法です。

def is_prime(n):
   if n == 1:
       return True
   for i in range(2,int(n**0.5) + 1):
       if n % i == 0:
           return False
   return True
is_prime(59)

実行すると

True

と出ます。

次に違うサイトでもみてみます。試し割り法です。

   import math
    
   def trial_division(target):
       dest = int(math.sqrt(target))
    
       for i in range(2,dest):
           if target % i == 0:
               print(str(target) + 'は合成数!')
               return
       print(str(target) + 'は素数!')
trial_division(53)

実行すると

53は素数!

と出ます。

こちらのコードでは"math"をimportして".sqrt"で計算させています。

最初のコードは"n**0.5"で同じ計算をさせています。

Swiftで実装してみます。

func isPrime(_ n:Int)->Bool{
   if n == 1{
       return true
   }
   for i in 2..<(Int(sqrt(Double(n)))+1){
       if n % i == 0{
        return false
       }
   }
   
   return true
}
isPrime(53)

と実行すると"true"となります。


この記事が気に入ったらサポートをしてみませんか?