丸子酱1016 发表于 2015-1-6 14:28:17

捧个场!

月明星稀XM 发表于 2015-1-6 15:47:08

运行成功了,多少分?: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)

月明星稀XM 发表于 2015-1-6 15:49:25

hacker.jin 发表于 2015-1-6 08:39
你余2是要干嘛!要的是素数,不是奇数

我又最新回复了一楼,你看看对不对?? 第22楼

hehex 发表于 2015-1-6 15:54:01

支持

hacker.jin 发表于 2015-1-6 16:06:43

月明星稀XM 发表于 2015-1-6 15:49
我又最新回复了一楼,你看看对不对?? 第22楼

不对,可以确定得到的是回问数,但是不能确定是素数,你自己没实验过吗,楼主有演示啊!

破渔网兜兜 发表于 2015-1-6 16:19:44

来支持下~~

吴聊 发表于 2015-1-6 16:58:52

不知道能得几分呢?
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:34:35

本帖最后由 月明星稀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)

ZM_Lxwz 发表于 2015-1-6 17:43:57

感觉27楼的挺好 但是最后把(2,n/2)会不会就好多了

月明星稀XM 发表于 2015-1-6 17:47:55

吴聊 发表于 2015-1-6 16:58
不知道能得几分呢?

if str(n)[::-1]==str(n):
这句用来判断回文的,str(n)[::-1]看不懂 ,尤其是括号里的??

ZM_Lxwz 发表于 2015-1-6 17:50:09

月明星稀XM 发表于 2015-1-6 17:34
请大神们点评~~

判断是否是素数的话只要除到这个数的一般就行了 效率可以提高一倍

月明星稀XM 发表于 2015-1-6 17:52:57

ZM_Lxwz 发表于 2015-1-6 17:50
判断是否是素数的话只要除到这个数的一般就行了 效率可以提高一倍

恩,没错!不过楼主说了 字数 > 效率
宁肯少字,不要效率
大神,你看我用了两个return 该如何改进啊??

ZM_Lxwz 发表于 2015-1-6 17:54:51

月明星稀XM 发表于 2015-1-6 17:34
请大神们点评~~

是一半。。。。

只爱陌生猴 发表于 2015-1-6 17:57:54

现在还没有投票权,我是来接受挑战的,支持!!

wei_Y 发表于 2015-1-6 18:03:53

月明星稀XM 发表于 2015-1-6 17:47
if str(n)[::-1]==str(n):
这句用来判断回文的,str(n)[::-1]看不懂 ,尤其是括号里的??

第二个冒号后面表示步长,-1为步长即翻转咯。
判断素数可以用列表解析来做到更快更简单。

仲涵容 发表于 2015-1-6 18:27:58

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)

仲涵容 发表于 2015-1-6 18:33:16

我去,想用埃式筛选法,调了好长时间愣是没调出来,坑爹!!!

只爱陌生猴 发表于 2015-1-6 19:30:51

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:39:45

只爱陌生猴 发表于 2015-1-6 19:30
def h(n):
    n+=1
    if str(n)[::-1]==str(n):


“效率<字符,字符优先效率靠边”,楼主,这是您说的啊,既然效率靠边,那不就是要求代码越精简越好么。。。
要求代码精简,这正是递归的特长啊。。。

守夜人 发表于 2015-1-6 20:07:10

支持。。。。。。。。。。。。
页: 1 [2] 3 4 5 6 7 8
查看完整版本: #鱼C五周年狂欢预热#第一弹(已结束)