如何在python中查找数组中非基本索引值的总和?

2024-09-24 22:19:10 发布

您现在位置:Python中文网/ 问答频道 /正文

Input:
-1,-2,-3,3,4,-7
Output:
1 
Explanation : The values at the non-prime index are-1,-2,4 and their sum is 1

代码:

no=int(input("ENTER :"))
def sumDigits(no): 
    return 0 if no == 0 else int(no%10) + sumDigits(int(no/10))  


print(sumDigits(no)) 

我的代码只给出所有数字的和。如何在数组中找到非素数索引值之和


Tags: theno代码inputoutputindexprimeare
2条回答

您可以使用图书馆来帮助,例如sympy

import sympy
l = [-1,-2,-3,3,4,7]
sum([l[x] for x in range(len(l)) if not sympy.isprime(x)])

输出

1

在代码中,需要检查索引是否为素数,如果不是,则添加值,否则继续

def primes(n): # simple Sieve of Eratosthenes 
    odds = range(3, n+1, 2)
    sieve = set(sum([list(range(q*q, n+1, q+q)) for q in odds],[]))
    return [2] + [p for p in odds if p not in sieve]


l = [-1,-2,-3,3,4,-7]

length = len(l)

prime = primes(length)
sol = 0

for i, v in enumerate(l):
    if i not in prime:
        sol += v

print(sol) # output 1

相关问题 更多 >