鱼C论坛

 找回密码
 立即注册
查看: 2218|回复: 2

[已解决]建立n以内所有素数列表

[复制链接]
发表于 2017-9-15 09:37:31 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
k = int(input('请输入一个整数:'))

def primes(n):
    ListPrimes = []
    for i in range(2,n):
        fg = 0
        for j in range(2,n-1):
            if (n%i) == 0:
                fg = 1
                break
        if fg == 0:
            ListPrimes.append(i)
            return ListPrimes

x = primes(k)
print(x)


这行代码哪里有问题啊
最佳答案
2017-9-15 09:55:12
请仔细对比下
  1. k = int(input('请输入一个整数:'))

  2. def primes(n):
  3.     ListPrimes = []   
  4.     for i in range(2,n):
  5.         fg = 0   
  6.         for j in range(2,i-1):
  7.             if i%j == 0:
  8.                 fg = 1
  9.                 break
  10.         if fg == 0:
  11.             ListPrimes.append(i)
  12.     return ListPrimes

  13. x = primes(k)
  14. print(x)
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2017-9-15 09:55:12 | 显示全部楼层    本楼为最佳答案   
请仔细对比下
  1. k = int(input('请输入一个整数:'))

  2. def primes(n):
  3.     ListPrimes = []   
  4.     for i in range(2,n):
  5.         fg = 0   
  6.         for j in range(2,i-1):
  7.             if i%j == 0:
  8.                 fg = 1
  9.                 break
  10.         if fg == 0:
  11.             ListPrimes.append(i)
  12.     return ListPrimes

  13. x = primes(k)
  14. print(x)
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-9-15 10:17:45 | 显示全部楼层
n = int(input('请输入一个整数:'))

def primes(n):
    ListPrimes = []
    for i in range(2,n):
        fg = 0
        for j in range(2,i-1):
            if (i%j) == 0:
                fg = 1
                break
        if fg == 0:
            ListPrimes.append(i)
    return ListPrimes

def factoring(n):
    result = []
    for p in primes(n):
        while n != 1:
            if n%p == 0:
                n = n/p
                result.append(p)
            else:
                break
        else:
            result = map(str,result)
            result = '*'.join(result)

    if not result:
        return n

print(factoring(n))


这样 这个函数求n以内的素数是没问题了  然后我需要求n的因式分解  就是小于他的素数的乘积  对吧
为啥这个返回 None
还想问一下,所有函数共用一个形参可以把?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-11-2 05:15

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表