Python 求给定范围内素数的和

Python 求给定范围内素数的和,python,Python,我想写一个代码,它执行以下操作: 给定一个字符串,它会找出在给定字符串中元音所在的索引 将每个索引项乘以100 将1和上一步的结果数之间的所有素数求和。 例如:string='hello' 在本例中: 第一个元音“e”位于索引1处,因此1*100=100 1和100之间的素数之和为1060 下一个元音“0”位于索引4,因此4*100=400 1和400之间的素数之和是13887 该代码用于查找索引并将其乘以10: string='hello' vowel='aeiouAEIOU' res = [

我想写一个代码,它执行以下操作:

给定一个字符串,它会找出在给定字符串中元音所在的索引 将每个索引项乘以100 将1和上一步的结果数之间的所有素数求和。 例如:string='hello'

在本例中:

第一个元音“e”位于索引1处,因此1*100=100 1和100之间的素数之和为1060 下一个元音“0”位于索引4,因此4*100=400 1和400之间的素数之和是13887 该代码用于查找索引并将其乘以10:

string='hello'
vowel='aeiouAEIOU'
res = []
for ele in range(len(string)):
    if string[ele] in 'AEIOUaeiou':
       res.append(ele)
       
       mul_list=[element * 100 for element in res]
       
这将生成一个输出,如图所示:

findong素数和的代码如下所示:

def sum_primes (start,stop):
result=[]
for i in range(start,stop):
    if i==1:
        continue
    prime=True
    for j in range(2,int(math.sqrt(i))+1):
        if i%j==0:
            prime=False
            break
    if prime:
        result.append(i)
return sum(result)

现在我需要一种方法根据第三个条件更新启动和停止变量

使用原始问题的函数isPrime,您可以使用过滤器和求和来解决问题


我希望这能解决你的问题

from math import sqrt

string = "hello"
vowel = "aeiouAEIOU"


# https://www.geeksforgeeks.org/sum-of-all-the-prime-numbers-in-a-given-range/


def checkPrime(numberToCheck):
    if numberToCheck == 1:
        return False
    for i in range(2, int(sqrt(numberToCheck)) + 1):
        if numberToCheck % i == 0:
            return False
    return True


def primeSum(from_no, to):
    sum = 0
    for i in range(to, (from_no - 1), -1):
        # Check for prime
        isPrime = checkPrime(i)
        if isPrime:
            # Sum the prime number
            sum += i
    return sum


for index, element in enumerate(string):
    if element in vowel:
        print(primeSum(1, index * 100))

为什么要重新发布同一个问题?原来的问题不清楚,所以重新定义了它并发布了一个新的问题在你的情况下,start,stop=mul_list如果你仔细看问题,实际上这并不能解决问题,我必须查看每个索引乘以100,然后找到总和。你的函数给出了组合答案这解决了标题中的难题:找到给定范围内的素数之和,你只需要在你的mul_列表中得到这个范围。
from math import sqrt

string = "hello"
vowel = "aeiouAEIOU"


# https://www.geeksforgeeks.org/sum-of-all-the-prime-numbers-in-a-given-range/


def checkPrime(numberToCheck):
    if numberToCheck == 1:
        return False
    for i in range(2, int(sqrt(numberToCheck)) + 1):
        if numberToCheck % i == 0:
            return False
    return True


def primeSum(from_no, to):
    sum = 0
    for i in range(to, (from_no - 1), -1):
        # Check for prime
        isPrime = checkPrime(i)
        if isPrime:
            # Sum the prime number
            sum += i
    return sum


for index, element in enumerate(string):
    if element in vowel:
        print(primeSum(1, index * 100))