楼主:
erimow (Erimo)
2024-08-08 16:29:38Write a function called "isPrime" that takes an integer as input, and returns
a boolean value that indicates if the input number is prime.
isPrime(1)
# returns false
isPrime(5)
# returns true
isPrime(91)
# returns false
isPrime(1000000)
# returns false
我的想法
质数 = 只能被1和自己整除
1不是是质数,所以=1要False
2以后的数字,我只要写如果在从2开始到自己前一位的数字,除下去有任何一个余数是0
那就False
剩下就是True
def isPrime(int):
if int == 1:
print(False)
return False
for i in range(2, int):
if (int % i) == 0:
print(False)
return False
print(True)
return True
这个应该没问题
# Write a function called "palindrome" that checks if the input string is a
palindrome.
这题我一开始想法是
回文就从第一个往后看和从最后一个往前看是一样的
所以我本来是想说用index第一个跟最后一个一样,第二个跟倒数第二个一样
n = len(str)
只要i 在range n里面,j则是从index-1开始往回数
两个 ==
那就是对的
反之就str[0] != str[-1]那就是false
但这样不知道为啥写不出来
前面这边应该没问题
def palindrome(str):
n = len(str)
if str[0] != str[-1]:
print(False)
return False
但有问题的是后面这里
else:
for i in range(0, n):
for j in range(-1, n, -1):
if str[i] == str[j]:
print(True)
return True
如果不是上面的情况应该是要回应True的
但却没办法
我的想法应该是错在for j这句
-1开始应该没错,最后-1倒数应该也没错
但中间要放啥啊
感觉不是n n代表我数第一个就停了
作者:
emptie ([ ])
2024-08-08 16:31:00其实你只要检查到 sqrt(n)就可以停了
楼主:
erimow (Erimo)
2024-08-08 16:33:00可能是
巢状不是里面一步外面一步欸 是里面一圈外面一步==
作者:
Rushia (みけねこ的鼻屎)
2024-08-08 16:34:00sieve of Eratosthenes了解下
楼主:
erimow (Erimo)
2024-08-08 16:34:00现在在讲第一题还第二题
楼主:
erimow (Erimo)
2024-08-08 16:35:00所以我第一题也有问题喔
作者:
Che31128 (justjoke)
2024-08-08 16:36:00第一题一般会建质数表来跑
楼主:
erimow (Erimo)
2024-08-08 16:36:00效率问题不管 ==
就算只是用除的也有很多优化 筛法直接是别的做法了我也觉得你还不到有办法在意效率的程度
楼主:
erimow (Erimo)
2024-08-08 16:37:00阿康阶段
楼主:
erimow (Erimo)
2024-08-08 16:39:00我要是知道我就不在这里了
所以你知道你的循环实际上会怎么跑吗这就根本没必要两层阿你直接把i跟j print出来 你就会发现你到底写了什么
作者:
Rushia (みけねこ的鼻屎)
2024-08-08 16:41:00其实新手直接看答案程式码在思考可能比较快
我在说你的for loop 先不要管上半那个愚蠢的if了
楼主:
erimow (Erimo)
2024-08-08 16:41:00干 我写出来了
他没搞清楚它原本的思路到底有什么问题你确定你真的对了吗
楼主:
erimow (Erimo)
2024-08-08 16:43:00至少目前测试的四个都对==
楼主:
erimow (Erimo)
2024-08-08 16:44:00真的耶aaba会错
你只判断到头跟尾而已 第一个==直接就回传true你实际上就只要需要一层循环而已
楼主:
erimow (Erimo)
2024-08-08 16:47:00因为他判断完第一个就给我true了
靠 两题 没事狼师 你查一下two pointer
然后因为你要的是完全相等 所以要像你第一题那样写循环里用!= 然后return False 外面才True
作者:
eight0 (欸XD)
2024-08-08 16:55:00