两部分问题......
1)试图确定600851475143的最大素数因子,发现这个程序似乎在线工作,问题是我很难弄清楚它是如何工作的(我理解程序正在做什么的基础)...另外,如果您能够了解一些您可能知道找到素数的方法(可能没有测试每个数字)以及您的方法是如何工作的.
我在网上找到的主要因素代码
n = 600851475143
i = 2
while i * i < n:
while n % i == 0:
n = n / i
i = i + 1
print (n)
#takes about ~0.01secs
Run Code Online (Sandbox Code Playgroud)
2)为什么代码比这段代码快得多(代码只是测试速度而没有其他真正的用途)
i = 1
while i < 100:
i += 1
#takes about ~3secs
Run Code Online (Sandbox Code Playgroud) 也许这是一个相当新手的问题,但我很好奇.我试过搜索它,但我想我没有正确搜索的正确术语.
!=
和之间的区别<>
.
在再次搜索,"不平等",我发现一个讨论not ==
和!=
,但一无所知<>
.
我没有用过这个with
语句,但对它的用途有些熟悉。使用以下代码,该#1
块按预期工作,但是#2
- 在这里纠正我,应该做与第一个相同的事情 - 引发以下异常FileExistsError: [Errno 17] File exists: 'mydir'
。
import os
if not(os.path.exists('mydir')):
os.makedirs('mydir')
path = 'mydir'
filename = 'msg.txt'
filename2 = 'msg2.txt'
#1
with open(os.path.join(path, filename), 'w') as temp_file:
temp_file.write("hello")
#2
temp_file = open(os.path.join(path, filename2), 'w')
temp_file.write("hello again")
temp_file.close()
Run Code Online (Sandbox Code Playgroud) 这是我到目前为止所做的。我想要做的是在推送之前将第一次和第二次提交合并为一个提交(尚未添加远程存储库)。
$ git init
$ vim myprogram
$ git add myprogram && git commit -m "Initial commit"
$ vim README.md
$ git add README.md && git commit -m "Added readme"
$git log --pretty=oneline
b8e2979 Added readme
a579d65 Initial commit
$ git rebase -i HEAD~2
fatal: Needed a single revision
invalid upstream HEAD~2
Run Code Online (Sandbox Code Playgroud)
我做错了什么导致了致命错误。
如果有人问过这个确切的问题,请标记它并提供链接。