捧个场!
运行成功了,多少分?:loveliness:
def f(x):
for y in range(2,x):
if x%y!=0 and list(str(x))==list(reversed(str(x))):
print(x)
break
else:
return f(x+1)
hacker.jin 发表于 2015-1-6 08:39
你余2是要干嘛!要的是素数,不是奇数
我又最新回复了一楼,你看看对不对?? 第22楼
支持
月明星稀XM 发表于 2015-1-6 15:49
我又最新回复了一楼,你看看对不对?? 第22楼
不对,可以确定得到的是回问数,但是不能确定是素数,你自己没实验过吗,楼主有演示啊!
来支持下~~
不知道能得几分呢?
def golf(n):
while 1:
n+=1
if str(n)[::-1]==str(n):
for i in range(2,n):
if not n%i:
break
else:
print(n)
return
本帖最后由 月明星稀XM 于 2015-1-6 17:44 编辑
请大神们点评~~
def f(x):
y=x+1
for i in range(2,y):
if y%i==0:
return f(y)
if list(str(y))==list(reversed(str(y))):
print(y)
else:
return f(y)
感觉27楼的挺好 但是最后把(2,n/2)会不会就好多了
吴聊 发表于 2015-1-6 16:58
不知道能得几分呢?
if str(n)[::-1]==str(n):
这句用来判断回文的,str(n)[::-1]看不懂 ,尤其是括号里的??
月明星稀XM 发表于 2015-1-6 17:34
请大神们点评~~
判断是否是素数的话只要除到这个数的一般就行了 效率可以提高一倍
ZM_Lxwz 发表于 2015-1-6 17:50
判断是否是素数的话只要除到这个数的一般就行了 效率可以提高一倍
恩,没错!不过楼主说了 字数 > 效率
宁肯少字,不要效率
大神,你看我用了两个return 该如何改进啊??
月明星稀XM 发表于 2015-1-6 17:34
请大神们点评~~
是一半。。。。
现在还没有投票权,我是来接受挑战的,支持!!
月明星稀XM 发表于 2015-1-6 17:47
if str(n)[::-1]==str(n):
这句用来判断回文的,str(n)[::-1]看不懂 ,尤其是括号里的??
第二个冒号后面表示步长,-1为步长即翻转咯。
判断素数可以用列表解析来做到更快更简单。
def golf(x):
while 1:
x+=1
if str(x)[::-1]==str(x):
for i in range(2,int(x/2)+1):
if not x%i:
break
else:
print(x)
我去,想用埃式筛选法,调了好长时间愣是没调出来,坑爹!!!
def h(n):
n+=1
if str(n)[::-1]==str(n):
for i in range(2,n):
if n%i==0:return h(n)
return n
else:return h(n)
n=int(input())
print(h(n))
注:如果只是要求写函数,则最后两行的代码忽略不计。
只爱陌生猴 发表于 2015-1-6 19:30
def h(n):
n+=1
if str(n)[::-1]==str(n):
“效率<字符,字符优先效率靠边”,楼主,这是您说的啊,既然效率靠边,那不就是要求代码越精简越好么。。。
要求代码精简,这正是递归的特长啊。。。
支持。。。。。。。。。。。。