我是初学者。下面我对欧拉项目3号问题的解决方案需要很长时间才能返回答案。有人能提出改进建议吗?我做错了什么?我写了一些代码来帮助我思考这个问题的所有难题。
13195的质因数是5、7、13、29。
600851475143的最大质因数是什么?
#limiter identification for iteration
def limiter(x):
for i in range (2, x):
if x % i == 0:
return int (x/i)
#Prime checker
def is_prime(a):
for i in range (2, a):
if a % i == 0:
return False
return True
#Lists all factors of a given no.
def factorlist(b):
list = []
for i in range (2, limiter(b)+1):
if b % i == 0:
list.append(i)
return list
#Lists all prime factors of a given no.
def primefactor(p):
plist = []
for i in factorlist(p):
if is_prime(i)== True:
plist.append(i)
return plist
print (primefactor(600851475143)[-1])
下面是更简单、更短的代码:
# Largest Prime Factor
def prime_number(b):
c1 = 0
for i in range(1,int(b/2)+1):
if b % i == 0:
c1 += 1
if c1 < 2:
return(True)
else:
return(False)
def prime_factor(a):
n = 0
count = 1
prime = 0
while n < a+1:
n += 1
if a % n == 0:
if prime_number(n) == True:
prime = n
print(prime)
prime_factor(600851475143)
寻找最大素因子的递归方法将更简单,可能更快:
def lpf(N,p=2): # start from preceding prime factor
for f in range(p,int(N**0.5)+1): # factors up to square root
if N%f==0 : return max(f,lpf(N//f,f)) # 1st prime vs lpf of counterpart
return N # none found, N is prime itself
lpf(600851475143) # 6857
我没有答案,但我要说的是,有时函数中的print()语句对于在函数中调试很有用。例如,limitor()函数挂起在71。我发现在我的机器上运行你的程序:
def limiter(x):
for i in range (2, x):
print(i) <------------------ I added this
if x % i == 0:
return int (x/i)
因此,在函数中添加print()可能会有所帮助。
我是pycharm的新用户,我很难运行一个简单的文件来导入熊猫。我有以下问题: 每当我打开项目时,“扫描文件到索引”都需要很长时间。 我可以看到在索引中,它使用了Anaconda2中的包/文件,这就是为什么我的程序需要很长时间才能运行。 我已经尝试使某些文件夹“排除”,如此处所述 PyCharm 4.0.5 挂在“扫描文件以索引”后台任务上,我还删除了此处所述的“缓存”文件夹 Intelli J
我有一个由未加权边构建的图(a),我想计算主图(a)中最大连通图(giantC)的平均最短路径长度。但是,到目前为止,该脚本已经运行了3个多小时(在Colab和本地进行了尝试),对于和都没有输出任何结果。 我使用的是, 这是我的剧本 有没有办法让它更快?或者是计算giantC图的直径和最短路径长度的替代方法?
我正在将一个拼花文件从DataFrame写入S3。当我查看Spark UI时,我可以看到除1项任务外的所有任务都在写作阶段迅速完成(例如199/200)。这最后一个任务似乎要花很长时间才能完成,而且常常由于超出执行器内存限制而失败。 我想知道最后一个任务发生了什么。如何优化它?谢谢。
我正在为自己清除一些涉及到MYSQL的远程SSL连接的信息。特别是,一旦我设置了MYSQL以启用SSL并有一个需要SSL的远程用户。 这就是我如何与需要SSL的用户远程连接(命令行)到MYSQL的方式: mysql-uMyUserName-p-h192.168.5.5-sslca/path/to/ca.pem 我的问题是:为什么我必须作为客户端提供ca.pem文件? 以下是我在服务器上安装mysq
问题内容: 有没有让goroutine永远睡眠的API ? 换句话说,我希望我的项目始终运行,除非停止它。 问题答案: “睡眠” 您可以使用许多永久阻塞的构造,而不会“吃掉” CPU。 例如,不带任何(且不带)的a: 或从没有人发送任何东西的渠道接收: 或从频道接收也会永远阻止: 或在频道上发送也会永远被阻止: 或锁定已经锁定的: 戒烟 如果您确实想提供一种退出方法,则可以通过一个简单的渠道来完成
问题内容: 有什么办法可以使这两个软件包一起运行? 因此,基本上,我希望两全其美。自动运行服务器(并在出现错误时重新启动),并在发生.js文件更改时自动更新。 问题答案: 但是要避免该问题,您可以执行以下操作: 这样可以确保实际退出(而不是给您“应用程序崩溃”消息),然后再次将其接收。 在此指定要运行的命令,否则将默认为节点。不使用-c会导致在此答案的注释中提及的错误。