Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 打印各种组合中的第一个组合_Python 3.x_Loops - Fatal编程技术网

Python 3.x 打印各种组合中的第一个组合

Python 3.x 打印各种组合中的第一个组合,python-3.x,loops,Python 3.x,Loops,所以我有一个问题: 给定偶数(大于2),返回两个素数,其和等于给定的数。有几种可能的组合。仅打印第一对这样的图片 这是为了补充参考: *输入:第一行包含T,测试用例的数量。下面的T行由一个数字组成,我们将找到两个素数 注意:数字始终为偶数 输出:对于每个测试用例,打印两个分隔的素数,以使较小的数字首先出现。每个测试用例的答案必须在新行中 限制条件:1≤ T≤ 七十 2

所以我有一个问题:

给定偶数(大于2),返回两个素数,其和等于给定的数。有几种可能的组合。仅打印第一对这样的图片

这是为了补充参考:

*输入:第一行包含T,测试用例的数量。下面的T行由一个数字组成,我们将找到两个素数

注意:数字始终为偶数

输出:对于每个测试用例,打印两个分隔的素数,以使较小的数字首先出现。每个测试用例的答案必须在新行中

限制条件:1≤ T≤ 七十

2 例如:

输入:

5,74,1024,66,89990

产出:371、31021、561、35、179973

以下是我尝试过的:

import math
def prime(n):

    for i in range(2, int(math.sqrt(n)) + 1):
        if n % i == 0:
            return False
    return True       

T = int(input("No of inputs: ")) #T is the no of test cases

input_num = []
for i in range(0,T):
    input_num.append(input())

lst2= []
if T in range(1,71):
    for i in input_num:
        if (i in range(3,1000)) and (i % 2 == 0):
            for j in range(0,i):
                if prime(j) == True:
                    lst2.append(j)
                for x in lst2:
                    for y in lst2:
                        if x + y == j:
                            print(x,end = ' ')
                            print(y)
这只是获取输入,而不是返回输出


此外,我的代码目前适用于所有组合,但我只需要第一对,我无法做到这一点,我找到了一个更优雅的解决方案。java、C++、C++等版本的解决方案也在那里出现。我将给出python3的解决方案

查找素数的Python 3程序 #和等于给定数的一对 #Python3打印超级素数的程序 #小于或等于n。 #生成所有小于n的素数。 def筛分费拉托斯烯(n,isPrime): #初始化布尔值的所有项 #数组为True。iPrime[i]中的值 #如果我不是一个好朋友,最终会是假的 #素数,否则为真bool isPrime[n+1] iPrime[0]=iPrime[1]=错误 对于范围(2,n+1)内的i: isPrime[i]=True p=2
虽然(p*p)这是非常感谢的,我会尝试这个解决方案,但我想纠正我的代码。虽然这是非常基本的,但我想知道如何利用我的逻辑来改进我的代码。如果是这样的话,那么我肯定会马上看完你的代码。让我们修复需要修复的东西。