要计算一万以内的所有质数,可以使用筛选法(埃氏筛法)来解决,而不需要使用除法和求余运算。\n\n具体步骤如下:\n1. 创建一个长度为一万的布尔数组prime[],将所有元素初始化为true。\n2. 将prime[0]和prime[1]设置为false,因为0和1不是质数。\n3. 从2开始,遍历数组prime[],如果当前元素prime[i]为true,则将数组中所有能被i整除的元素设置为false,因为它们不是质数。\n4. 遍历完整个数组prime[]后,所有为true的元素即为一万以内的质数。\n\n以下是一个基于Python的示例代码:\n\npython\ndef find_prime(n):\n prime = [True] * (n+1)\n prime[0] = prime[1] = False\n p = 2\n while (p * p <= n):\n if prime[p] == True:\n for i in range(p * p, n+1, p):\n prime[i] = False\n p += 1\n prime_numbers = [i for i in range(n+1) if prime[i]]\n return prime_numbers\n\nprimes = find_prime(10000)\nprint(primes)\n\n\n该代码会输出一万以内的所有质数。请注意,该方法的时间复杂度为O(nloglogn),因此对于一万以内的数来说,运行时间非常快。


原文地址: https://www.cveoy.top/t/topic/pz4s 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录