这是我能提出的最佳算法.
def get_primes(n):
numbers = set(range(n, 1, -1))
primes = []
while numbers:
p = numbers.pop()
primes.append(p)
numbers.difference_update(set(range(p*2, n+1, p)))
return primes
>>> timeit.Timer(stmt='get_primes.get_primes(1000000)', setup='import get_primes').timeit(1)
1.1499958793645562
Run Code Online (Sandbox Code Playgroud)
可以做得更快吗?
此代码有一个缺陷:由于numbers
是无序集,因此无法保证numbers.pop()
从集中删除最小数字.然而,它对某些输入数字起作用(至少对我而言):
>>> sum(get_primes(2000000))
142913828922L
#That's the correct sum of all numbers below 2 million
>>> 529 in get_primes(1000)
False
>>> 529 in get_primes(530)
True
Run Code Online (Sandbox Code Playgroud) 我如何打破循环?
var largest=0
for(i<-999 to 1 by -1) {
for (j<-i to 1 by -1) {
val product=i*j
if (largest>product)
// I want to break out here
else
if(product.toString.equals(product.toString.reverse))
largest=largest max product
}
}
Run Code Online (Sandbox Code Playgroud)
如何将嵌套for循环转换为尾递归?
来自FOSDEM 2009 上的Scala Talk http://www.slideshare.net/Odersky/fosdem-2009-1013261在第22页:
打破并继续Scala没有它们.为什么?他们有点必要; 更好地使用许多较小的函数问题如何与闭包交互.他们不需要!
解释是什么?
我想在大小非本机时有一个内联svg元素的内容比例.当然,我可以把它作为一个单独的文件,并像这样扩展它.
index.html的: <img src="foo.svg" style="width: 100%;" />
foo.svg: <svg width="123" height="456"></svg>
但是,我想通过CSS向SVG添加其他样式,因此不能选择连接外部样式.如何制作内联SVG比例?
我一直在我的mac os x 10.8上使用mongo,突然昨天在我的日志中出现了这个警告(当启动shell时它也存在) -
警告:软限制太低.文件数为256,应至少为1000
谁能解释一下,这是什么意思?我应该以某种方式增加rlimits的数量吗?
我正在使用一个只有命令行界面的亚马逊Ubuntu EC2实例.我想为该服务器设置UI以使用远程桌面工具进行访问.有没有办法将GUI应用于EC2实例?
如何检查数字是否是回文?
任何语言.任何算法.(除了使数字成为字符串然后反转字符串的算法).
我需要测试事件是否正确发出或广播,并手动触发事件.
最好的方法是什么?
unit-testing javascript-events jasmine angularjs angularjs-directive
如何减少项目符号和文本之间的默认差距<li>
?
我想减少子弹和"我"之间的差距.
任何人都知道这个错误意味着什么?每次我将我的Android应用程序连接到Facebook(通过模拟器)时,我都会在LogCat shell中获取它.
负责授权功能的代码:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.authorize);
mPrefs = getPreferences(MODE_PRIVATE);
loginPref = PreferenceManager.getDefaultSharedPreferences(getBaseContext());
String access_token = mPrefs.getString("access_token", null);
long expires = mPrefs.getLong("access_expires", 0);
if(access_token != null) {
Singelton.mFacebook.setAccessToken(access_token);
}
if(expires != 0) {
Singelton.mFacebook.setAccessExpires(expires);
}
Singelton.mFacebook.authorize(this, new String[] {"email","user_birthday"}, new DialogListener() {
@Override
public void onComplete(Bundle values) {
SharedPreferences.Editor editor = mPrefs.edit();
editor.putString("access_token", Singelton.mFacebook.getAccessToken());
editor.putLong("access_expires", Singelton.mFacebook.getAccessExpires());
editor.commit();
SharedPreferences.Editor logEditor = loginPref.edit();
logEditor.putBoolean("login", true);
logEditor.commit();
addUser();
}
@Override
public void onFacebookError(FacebookError error) {
errorHandler();
}
@Override
public …
Run Code Online (Sandbox Code Playgroud) css ×2
algorithm ×1
amazon-ec2 ×1
android ×1
angularjs ×1
break ×1
facebook ×1
for-loop ×1
hash ×1
hashcode ×1
html ×1
html-lists ×1
html5 ×1
jasmine ×1
java ×1
limits ×1
logcat ×1
login ×1
macos ×1
math ×1
md5 ×1
mongodb ×1
optimization ×1
primes ×1
python ×1
scala ×1
scaling ×1
svg ×1
ubuntu ×1
unit-testing ×1
vnc ×1