Geeksforgeks上的python简单basic程序
有人能帮我解决这个问题吗 给定一个数字N,打印所有小于或等于N的复合数字。该数字应按升序打印 输入: 第一行包含一个整数T,表示测试用例的数量。然后,T测试用例随之出现。每个测试用例由一个整数N组成 输出: 打印从0到N的所有复合数字 限制条件:Geeksforgeks上的python简单basic程序,python,Python,有人能帮我解决这个问题吗 给定一个数字N,打印所有小于或等于N的复合数字。该数字应按升序打印 输入: 第一行包含一个整数T,表示测试用例的数量。然后,T测试用例随之出现。每个测试用例由一个整数N组成 输出: 打印从0到N的所有复合数字 限制条件: 1 ≤ T ≤ 50 4 ≤ N ≤ 10000 Example: Input: 2 10 6 Output: 4 6 8 9 10 4 6 我的解决方案如下: def comp(n): for i in range (4,n+1):
1 ≤ T ≤ 50
4 ≤ N ≤ 10000
Example:
Input:
2
10
6
Output:
4 6 8 9 10
4 6
我的解决方案如下:
def comp(n):
for i in range (4,n+1):
for j in range(2,i):
if i % j == 0 :
print(i)
break
t = int(input(""))
while(t >=1 & t <= 50):
for k in range(0,t):
p = int(input(""))
if(p >=4 & p <= 10000):
comp(p)
def comp(n):
对于范围(4,n+1)内的i:
对于范围(2,i)内的j:
如果i%j==0:
印刷品(一)
打破
t=int(输入(“”)
而(t>=1&t=4&p当您提供的输入值小于所需值时,会发生此错误。您的程序所期望的输入值大于实际提供的值
如果您使用管道将数据发送到脚本的stdin,那么请确保以换行的形式发送每个输入,如下所示
time echo -e "2\n'3 4 5 6 7'\n3" | python sample.py
使用递归的简单解决方案
def check_prime(n):
for i in range(2,int(math.sqrt(n))+1):
if(n%i==0):
return 0
return 1
def print_composite(n):
if(n<5):
print(n),
return
print_composite(n-1)
if(check_prime(n)==0):
print(n),
return
这里的罪魁祸首是while
循环,而不是if
。因为t
是一个常量,while
循环永远不会结束,因此,p=int(输入(“”)
执行的次数将超过所需的次数。因此,eoferor
在p=int(输入(“”)上
你在哪里编译这个?还有,这是Python2还是pytho3?为什么while(t>=1&t@abhineet:it’s for multiple test cases..我正在Geeksforgeks网站上运行它..要检查你有多个测试用例,请在范围(0,t)内检查k的:
。第一行,它应该只检查给定的t
是否有效,即如果(t>=1&t@dust0x::约束不是复杂的。约束存在,因此您可以验证给定的输入。如果输入范围超出范围,则在没有约束检查的情况下,您将具有复杂性。此解决方案无法回答OP的问题。@Abhineet那么,我给了他一个精确的解决方案……我知道这不是答案,谢谢你可以指导OP解决所有GFG问题,但请不要在SO平台上这样做。你可以询问他的个人邮件/号码,然后从那里开始。不要生气。我们都是来解决问题的,但不是填鸭式的。删除否决票的最佳方法是编辑答案,以便提供更好的解释等等OP问题的答案。你是对的,程序需要更多的输入。这并不意味着我们必须为代码提供那么多的输入。代码部分存在逻辑错误,因此,代码需要更多的输入。
>>> print_composite(10)
4 6 8 9 10
>>> print_composite(6)
4 6
>>> print_composite(16)
4 6 8 9 10 12 14 15 16