[プログラマ/PYTHON]小数点を作成


問題の説明
与えられた数字のうち3つの数字を小数に加算すると、個数を求めてみます.数値を持つ配列numsをパラメータとする場合は、solution関数を完了してnumsの3つの異なる数値の小数を返します.
せいげんじょうけん
numsに含まれる数字の個数は3個または50個を超えない.
numsの各要素は1000より大きい自然数であり、重複する数字は含まれていない.
コードの説明
入力
  • 個の小数点のリストを作成
  • 3の中の扉、小数ならcount++
  • 1+2+4と1+4+2他の正解率が23 per程度なら、繰り返し処理してください.
    2021 8月コード
    def solution(nums):
        answer = 0
        li = [True] *3000
        li[0] = False
        li[1] = False
        result = []
        #소수 리스트 만들기
        int_=int(3000**0.5)
        for i in range(2, int_):
            if li[i] == True:
                for j in range(i + i,3000,i):
                    li[j] = False
        prime = [i for i in range(3000) if li[i] == True]
    
    
        for i in nums:
            for j in nums:
                if i<j:
                    for k in nums:
                        if j<k:
                            if i+j+k in prime:
                                answer += 1
        return answer
    2022.01.07
    def solution(nums):
        count = 0
        prime = [0] * 3000
        for j in range(2, 3000//2):
            if prime[j] == 0:
                for k in range(j + j,3000,j):
                    prime[k] = 1
    
        for i in range(len(nums)):
            for j in range(i+1, len(nums)):
                for k in range(j+1, len(nums)):
                    temp = nums[i] + nums[j] + nums[k]
                    if prime[temp] == 0 :
                        count += 1
                    
        return count