无法在 Python 中编码非平方整数

Posted

技术标签:

【中文标题】无法在 Python 中编码非平方整数【英文标题】:Unable to code for non-squares integers in Python 【发布时间】:2021-04-30 23:03:03 【问题描述】:

如何创建一个代码,打印出所有小于 100 且不是任何整数平方的整数?

例如,不打印 3^2=9,但应该打印 30。

我已经设法打印出平方值,但不知道如何打印出不是平方的值。

这是我的代码:

for i in range(1,100):
    square = i**2

    print(square)

【问题讨论】:

【参考方案1】:

您可以通过多种方式编写此代码。我认为你可以在这里使用两个 for 循环来让你更容易。我正在使用 cmets,以便您作为新手更好地理解。你可以从这两个中选择你觉得更容易理解的一个:

list_of_squares = []               #list to store the squares
              
for i in range(1, 11):             #since we know 10's square is 100 and we only need numbers less than that
    square = i ** 2
    list_of_squares.append(square) #'append' keeps adding each number's square to this list
    
for i in range(1, 100):
    if i not in list_of_squares:   #'not in' selects only those numbers that are not in the squares' list
        print(i)

或者

list_of_squares = []

for i in range(1, 100):
    square = i ** 2
    list_of_squares.append(square)
    if square >= 100:              #since we only need numbers less than 100
        break                      #'break' breaks the loop when square reaches a value greater than or equal to 100
        
for i in range(1, 100):
    if i not in list_of_squares:
        print(i)

【讨论】:

【参考方案2】:

您可以将整数平方的 nums 存储到数组中。

squares =[]
for i in range(1,100):
    squares.append(i**2)

j = 0
for k in range(1,100):
    if k==squares[j]:
        j=j+1
    elif k>squares[j]:
        print(k)
        j=j+1
    else:
        print(k)

【讨论】:

以上是关于无法在 Python 中编码非平方整数的主要内容,如果未能解决你的问题,请参考以下文章

python中的整数平方根

leetcode之有序数组的平方

用python输入正整数N,计算1到N之间所以奇数的平方和,输出结果?

leetcode x 的平方根 python

python基础练习题(一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?)

Day9-计数排序/平方根/搜索插入位置