当前位置: 首页 > news >正文

网站icp备案是什么做特卖的购物网站

网站icp备案是什么,做特卖的购物网站,游戏外包公司是干嘛的,制作小程序的步骤想象一下#xff0c;你面前有一堆杂乱无章的数据#xff0c;你需要从中找到特定的信息#xff0c;或者按照一定的规则对这些数据进行排序。又或者#xff0c;你要为一个物流公司规划最佳的配送路线#xff0c;以降低成本和提高效率。这些问题看似复杂#xff0c;但都可以…想象一下你面前有一堆杂乱无章的数据你需要从中找到特定的信息或者按照一定的规则对这些数据进行排序。又或者你要为一个物流公司规划最佳的配送路线以降低成本和提高效率。这些问题看似复杂但都可以通过特定的算法来解决。算法就像是一把神奇的钥匙为解决各种各样的问题提供了方法和途径。无论是在科学研究、商业运营还是日常生活中算法都发挥着不可或缺的作用。 原型—源码 原型 import math import timedef is_prime(n):for i in range(2, n):if n % i  0:return Falsereturn Truedef prime_pq(n):start  time.time()for p in range(1, n):for q in range(1, n):# 如果找到因子且均为质数则退出循环if is_prime(p) and is_prime(q):if p * q  n:print(p, *, q)end  time.time()print(end - start)exit(0)if __name__  __main__:# 9973 * 9973prime_pq(99460729)原型—源码解析 这段代码的目的是找出一个给定数字的两个质数因子。下面是对代码的详细分析 导入模块: math: 这个模块提供了数学函数但在这个代码中并没有被使用。 time: 这个模块被用来测量程序的执行时间。 is_prime函数: 这个函数用于判断一个数是否为质数。 它从2开始一直检查到n-1看n是否能被这些数整除。如果能则n不是质数返回False否则返回True。 但这个函数可以优化。例如只需要检查到sqrt(n)就可以了因为如果n有一个大于sqrt(n)的因子那么它必然还有一个小于或等于sqrt(n)的因子。 prime_pq函数: 这个函数用于找出一个数的两个质数因子。 它从1开始遍历到n-1对于每个数p再遍历从1到n-1的每个数q。 如果p和q都是质数并且它们的乘积等于n那么就找到了两个质数因子打印出来并结束程序。 这个函数的时间复杂度是O(n^2)因为它有两个嵌套的循环。对于大的n这可能会非常慢。 主程序: 在主程序中调用了prime_pq函数传入的参数是99460729。 一次优化—源码 任何一个数只需要找其小于开根号的整数即可 import math import timedef is_prime(n):loop  int(math.sqrt(n))  1for i in range(2, loop):if n % i  0:return Falsereturn Truedef prime_pq(n):start  time.time()for p in range(1, n):for q in range(1, n):# 如果找到因子且均为质数则退出循环if is_prime(p) and is_prime(q):if p * q  n:print(p, *, q)end  time.time()print(end - start)exit(0)if __name__  __main__:# 9973 * 9973prime_pq(99460729)一次优化—源码解析 这段代码的目的是找出一个给定数字的两个质数因子。下面是对代码的详细分析 导入模块: math: 这个模块提供了数学函数但在这个代码中并没有被使用。 time: 这个模块被用来测量程序的执行时间。 is_prime函数: 这个函数用于判断一个数是否为质数。 它从2开始一直检查到n-1看n是否能被这些数整除。如果能则n不是质数返回False否则返回True。 但这个函数可以优化。例如只需要检查到sqrt(n)就可以了因为如果n有一个大于sqrt(n)的因子那么它必然还有一个小于或等于sqrt(n)的因子。 prime_pq函数: 这个函数用于找出一个数的两个质数因子。 它从1开始遍历到n-1对于每个数p再遍历从1到n-1的每个数q。 如果p和q都是质数并且它们的乘积等于n那么就找到了两个质数因子打印出来并结束程序。 这个函数的时间复杂度是O(n^2)因为它有两个嵌套的循环。对于大的n这可能会非常慢。 主程序: 在主程序中调用了prime_pq函数传入的参数是99460729。 二次优化—源码 跳过小于2的数 import math import timedef is_prime(n):if n  2:return Falseloop  int(math.sqrt(n))  1for i in range(2, loop):if n % i  0:return Falsereturn Truedef prime_pq(n):start  time.time()for p in range(1, n):for q in range(1, n):# 如果找到因子且均为质数则退出循环if is_prime(p) and is_prime(q):if p * q  n:print(p, *, q)end  time.time()print(end - start)exit(0)if __name__  __main__:# 9973 * 9973prime_pq(99460729)二次优化—源码解析 这段代码的目的是找出一个给定数字的两个质数因子。下面是对代码的详细分析 导入模块: math: 这个模块提供了数学函数但在这个代码中并没有被使用。 time: 这个模块被用来测量程序的执行时间。 is_prime函数: 这个函数用于判断一个数是否为质数。 它从2开始一直检查到n-1看n是否能被这些数整除。如果能则n不是质数返回False否则返回True。 但这个函数可以优化。例如只需要检查到sqrt(n)就可以了因为如果n有一个大于sqrt(n)的因子那么它必然还有一个小于或等于sqrt(n)的因子。 prime_pq函数: 这个函数用于找出一个数的两个质数因子。 它从1开始遍历到n-1对于每个数p再遍历从1到n-1的每个数q。 如果p和q都是质数并且它们的乘积等于n那么就找到了两个质数因子打印出来并结束程序。 这个函数的时间复杂度是O(n^2)因为它有两个嵌套的循环。对于大的n这可能会非常慢。 主程序: 在主程序中调用了prime_pq函数传入的参数是99460729。 三次优化—源码 在检查大于2的数时只检查奇数 import math import timedef is_prime(n):if n  2:return Falseif n  2:return Trueif n % 2  0:return Falseloop  int(math.sqrt(n))  1for i in range(3, loop, 2):if n % i  0:return Falsereturn Truedef prime_pq(n):start  time.time()for p in range(1, n):for q in range(1, n):# 如果找到因子且均为质数则退出循环if is_prime(p) and is_prime(q):if p * q  n:print(p, *, q)end  time.time()print(end - start)exit(0)if __name__  __main__:# 9973 * 9973prime_pq(99460729)三次优化—源码解析 这段代码的目的是找出一个给定数字的两个质数因子。下面是对代码的详细分析 导入模块: math: 这个模块提供了数学函数但在这个代码中并没有被使用。 time: 这个模块被用来测量程序的执行时间。 is_prime函数: 这个函数用于判断一个数是否为质数。 首先排除小于2的数因为它们不是质数。 对于2这个特殊的数直接返回True。 对于偶数除了2直接返回False。 然后从3开始只检查奇数因为偶数已经被排除了直到sqrt(n)。 如果在这个范围内找到一个能整除n的数那么n就不是质数返回False否则返回True。 prime_pq函数: 这个函数用于找出一个数的两个质数因子。 它从1开始遍历到n-1对于每个数p再遍历从1到n-1的每个数q。 如果p和q都是质数并且它们的乘积等于n那么就找到了两个质数因子打印出来并结束程序。 这个函数的时间复杂度是O(n^2)因为它有两个嵌套的循环。对于大的n这可能会非常慢。 主程序: 在主程序中调用了prime_pq函数传入的参数是99460729。 四次优化—源码 先算乘积 import math import timedef is_prime(n):for i in range(2, n):if n % i  0:return Falsereturn Truedef prime_pq(n):start  time.time()for p in range(1, n):for q in range(1, n):if p * q  n:if is_prime(p) and is_prime(q):print(p, *, q)end  time.time()print(end - start)exit(0)if __name__  __main__:# 9973 * 9973prime_pq(99460729)四次优化—源码解析 这段代码的目的是找出一个给定数字的两个质数因子。下面是对代码的详细分析 导入模块: math: 这个模块提供了数学函数但在这个代码中并没有被使用。 time: 这个模块被用来测量程序的执行时间。 is_prime函数: 这个函数用于判断一个数是否为质数。 它从2开始一直检查到n-1看n是否能被这些数整除。如果能则n不是质数返回False否则返回True。 但这个函数可以优化。例如只需要检查到sqrt(n)就可以了因为如果n有一个大于sqrt(n)的因子那么它必然还有一个小于或等于sqrt(n)的因子。 prime_pq函数: 这个函数用于找出一个数的两个质数因子。 它从1开始遍历到n-1对于每个数p再遍历从1到n-1的每个数q。 如果p和q都是质数并且它们的乘积等于n那么就找到了两个质数因子打印出来并结束程序。 这个函数的时间复杂度是O(n^2)因为它有两个嵌套的循环。对于大的n这可能会非常慢。 主程序: 在主程序中调用了prime_pq函数传入的参数是99460729。 五次优化—源码 任何一个数只需要找其小于开根号的整数即可 先算乘积 import math import timedef is_prime(n):loop  int(math.sqrt(n))  1for i in range(2, loop):if n % i  0:return Falsereturn Truedef prime_pq(n):start  time.time()for p in range(1, n):for q in range(1, n):if p * q  n:if is_prime(p) and is_prime(q):print(p, *, q)end  time.time()print(end - start)exit(0)    if __name__  __main__:# 9973 * 9973prime_pq(99460729)五次优化—源码解析 这段代码的目的是找出一个给定数字的两个质数因子。下面是对代码的详细分析 导入模块: math: 这个模块提供了数学函数但在这个代码中并没有被使用。 time: 这个模块被用来测量程序的执行时间。 is_prime函数: 这个函数用于判断一个数是否为质数。 它从2开始一直检查到n-1看n是否能被这些数整除。如果能则n不是质数返回False否则返回True。 但这个函数可以优化。例如只需要检查到sqrt(n)就可以了因为如果n有一个大于sqrt(n)的因子那么它必然还有一个小于或等于sqrt(n)的因子。 prime_pq函数: 这个函数用于找出一个数的两个质数因子。 它从1开始遍历到n-1对于每个数p再遍历从1到n-1的每个数q。 如果p和q都是质数并且它们的乘积等于n那么就找到了两个质数因子打印出来并结束程序。 这个函数的时间复杂度是O(n^2)因为它有两个嵌套的循环。对于大的n这可能会非常慢。 主程序: 在主程序中调用了prime_pq函数传入的参数是99460729。 六次优化—源码 跳过小于2的数 先算乘积 import math import timedef is_prime(n):if n  2:return Falseloop  int(math.sqrt(n))  1for i in range(2, loop):if n % i  0:return Falsereturn Truedef prime_pq(n):start  time.time()for p in range(1, n):for q in range(1, n):if p * q  n:if is_prime(p) and is_prime(q):print(p, *, q)end  time.time()print(end - start)exit(0)    if __name__  __main__:# 9973 * 9973prime_pq(99460729)六次优化—源码解析 这段代码的目的是找出一个给定数字的两个质数因子。下面是对代码的详细分析 导入模块: math: 这个模块提供了数学函数但在这个代码中并没有被使用。 time: 这个模块被用来测量程序的执行时间。 is_prime函数: 这个函数用于判断一个数是否为质数。 首先排除小于2的数因为它们不是质数。 对于2这个特殊的数直接返回True。 对于偶数除了2直接返回False。 然后从3开始只检查奇数因为偶数已经被排除了直到sqrt(n)。 如果在这个范围内找到一个能整除n的数那么n就不是质数返回False否则返回True。 prime_pq函数: 这个函数用于找出一个数的两个质数因子。 它从1开始遍历到n-1对于每个数p再遍历从1到n-1的每个数q。 如果p和q都是质数并且它们的乘积等于n那么就找到了两个质数因子打印出来并结束程序。 这个函数的时间复杂度是O(n^2)因为它有两个嵌套的循环。对于大的n这可能会非常慢。 主程序: 在主程序中调用了prime_pq函数传入的参数是99460729。 七次优化—源码 在检查大于2的数时只检查奇数 先算乘积 import math import timedef is_prime(n):if n  2:return Falseif n  2:return Trueif n % 2  0:return Falseloop  int(math.sqrt(n))  1for i in range(3, loop, 2):if n % i  0:return Falsereturn Truedef prime_pq(n):start  time.time()for p in range(1, n):for q in range(1, n):if p * q  n:if is_prime(p) and is_prime(q):print(p, *, q)end  time.time()print(end - start)exit(0)    if __name__  __main__:# 9973 * 9973prime_pq(99460729)七次优化—源码解析 这段代码的目的是找出一个给定数字的两个质数因子。下面是对代码的详细分析 导入模块: math: 这个模块提供了数学函数但在这个代码中并没有被使用。 time: 这个模块被用来测量程序的执行时间。 is_prime函数: 这个函数用于判断一个数是否为质数。 首先排除小于2的数因为它们不是质数。 对于2这个特殊的数直接返回True。 对于偶数除了2直接返回False。 然后从3开始只检查奇数因为偶数已经被排除了直到sqrt(n)。 如果在这个范围内找到一个能整除n的数那么n就不是质数返回False否则返回True。 prime_pq函数: 这个函数用于找出一个数的两个质数因子。 它从1开始遍历到n-1对于每个数p再遍历从1到n-1的每个数q。 如果p和q都是质数并且它们的乘积等于n那么就找到了两个质数因子打印出来并结束程序。 这个函数的时间复杂度是O(n^2)因为它有两个嵌套的循环。对于大的n这可能会非常慢。 主程序: 在主程序中调用了prime_pq函数传入的参数是99460729。 八次次优化—源码 p、q循环减半 import math import timedef is_prime(n):for i in range(2, n):if n % i  0:return Falsereturn Truedef prime_pq(n):start  time.time()for p in range(1, n // 2  1):for q in range(1, n // 2  1):if p * q  n:if is_prime(p) and is_prime(q):print(p, *, q)end  time.time()print(end - start)exit(0)if __name__  __main__:# 9973 * 9973prime_pq(99460729)八次优化—源码解析 这段代码的目的是找出一个给定数字的两个质数因子。下面是对代码的详细分析 导入模块: math: 这个模块提供了数学函数但在这个代码中并没有被使用。 time: 这个模块被用来测量程序的执行时间。 is_prime函数: 这个函数用于判断一个数是否为质数。 它从2开始一直检查到n-1看n是否能被这些数整除。如果能则n不是质数返回False否则返回True。 但这个函数可以优化。例如只需要检查到sqrt(n)就可以了因为如果n有一个大于sqrt(n)的因子那么它必然还有一个小于或等于sqrt(n)的因子。 prime_pq函数: 这个函数用于找出一个数的两个质数因子。 它从1开始遍历到n//2 1对于每个数p再遍历从1到n//2 1的每个数q。 如果p和q都是质数并且它们的乘积等于n那么就找到了两个质数因子打印出来并结束程序。 这个函数的时间复杂度是O(n^2)因为它有两个嵌套的循环。对于大的n这可能会非常慢。 主程序: 在主程序中调用了prime_pq函数传入的参数是99460729。 九次优化—源码 任何一个数只需要找其小于开根号的整数即可 p、q循环减半 import math import timedef is_prime(n):loop  int(math.sqrt(n))  1for i in range(2, loop):if n % i  0:return Falsereturn Truedef prime_pq(n):start  time.time()for p in range(1, n // 2  1):for q in range(1, n // 2  1):if p * q  n:if is_prime(p) and is_prime(q):print(p, *, q)end  time.time()print(end - start)exit(0)if __name__  __main__:# 9973 * 9973prime_pq(99460729)九次优化—源码解析 这段代码的目的是找出一个给定数字的两个质数因子。下面是对代码的详细分析 导入模块: math: 这个模块提供了数学函数但在这个代码中并没有被使用。 time: 这个模块被用来测量程序的执行时间。 is_prime函数: 这个函数用于判断一个数是否为质数。 它从2开始一直检查到n-1看n是否能被这些数整除。如果能则n不是质数返回False否则返回True。 但这个函数可以优化。例如只需要检查到sqrt(n)就可以了因为如果n有一个大于sqrt(n)的因子那么它必然还有一个小于或等于sqrt(n)的因子。 prime_pq函数: 这个函数用于找出一个数的两个质数因子。 它从1开始遍历到n//2 1对于每个数p再遍历从1到n//2 1的每个数q。 如果p和q都是质数并且它们的乘积等于n那么就找到了两个质数因子打印出来并结束程序。 这个函数的时间复杂度是O(n^2)因为它有两个嵌套的循环。对于大的n这可能会非常慢。 主程序: 在主程序中调用了prime_pq函数传入的参数是99460729。 十次优化—源码 跳过小于2的数 p、q循环减半 import math import timedef is_prime(n):if n  2:return Falseloop  int(math.sqrt(n))  1for i in range(2, loop):if n % i  0:return Falsereturn Truedef prime_pq(n):start  time.time()for p in range(1, n // 2  1):for q in range(1, n // 2  1):if p * q  n:if is_prime(p) and is_prime(q):print(p, *, q)end  time.time()print(end - start)exit(0)if __name__  __main__:# 9973 * 9973prime_pq(99460729)十次优化—源码解析 这段代码的目的是找出一个给定数字的两个质数因子。下面是对代码的详细分析 导入模块: math: 这个模块提供了数学函数但在这个代码中并没有被使用。 time: 这个模块被用来测量程序的执行时间。 is_prime函数: 这个函数用于判断一个数是否为质数。 首先排除小于2的数因为它们不是质数。 对于2这个特殊的数直接返回True。 对于偶数除了2直接返回False。 然后从3开始只检查奇数因为偶数已经被排除了直到sqrt(n)。 如果在这个范围内找到一个能整除n的数那么n就不是质数返回False否则返回True。 prime_pq函数: 这个函数用于找出一个数的两个质数因子。 它从1开始遍历到n//2 1对于每个数p再遍历从1到n//2 1的每个数q。 如果p和q都是质数并且它们的乘积等于n那么就找到了两个质数因子打印出来并结束程序。 这个函数的时间复杂度是O(n^2)因为它有两个嵌套的循环。对于大的n这可能会非常慢。 主程序: 在主程序中调用了prime_pq02函数传入的参数是99460729。 优化建议: 优化is_prime函数只需要检查到sqrt(n)就可以了。 对于prime_pq02函数可以考虑使用更高效的算法如试除法结合埃拉托斯特尼筛法来找出质数因子。 可以添加更多的错误检查和边界条件处理例如检查输入的n是否为正整数。 下面是优化后的代码 import math import timedef is_prime(n):if n  1:return Falseif n  2:return Trueif n % 2  0:return Falseloop  int(math.sqrt(n))  1for i in range(3, loop, 2):if n % i  0:return Falsereturn Truedef prime_pq(n):start  time.time()for p in range(2, int(math.sqrt(n))  1):if is_prime(p) and n % p  0:q  n // pif is_prime(q):print(p, *, q)end  time.time()print(end - start)returnprint(No prime factors found)if __name__  __main__:prime_pq02(99460729)这个优化后的代码应该会更快地找到99460729的两个质数因子。 十一次优化—源码 在检查大于2的数时只检查奇数 p、q循环减半 import math import timedef is_prime(n):if n  2:return Falseif n  2:return Trueif n % 2  0:return Falseloop  int(math.sqrt(n))  1for i in range(3, loop, 2):if n % i  0:return Falsereturn Truedef prime_pq(n):start  time.time()for p in range(1, n // 2  1):for q in range(1, n // 2  1):if p * q  n:if is_prime(p) and is_prime(q):print(p, *, q)end  time.time()print(end - start)exit(0)if __name__  __main__:# 9973 * 9973prime_pq(99460729)十一次优化—源码解析 这段代码的目的是找出一个给定数字的两个质数因子。下面是对代码的详细分析 导入模块: math: 这个模块提供了数学函数但在这个代码中并没有被使用。 time: 这个模块被用来测量程序的执行时间。 is_prime函数: 这个函数用于判断一个数是否为质数。 首先排除小于2的数因为它们不是质数。 对于2这个特殊的数直接返回True。 对于偶数除了2直接返回False。 然后从3开始只检查奇数因为偶数已经被排除了直到sqrt(n)。 如果在这个范围内找到一个能整除n的数那么n就不是质数返回False否则返回True。 prime_pq函数: 这个函数用于找出一个数的两个质数因子。 它从1开始遍历到n//2 1对于每个数p再遍历从1到n//2 1的每个数q。 如果p和q都是质数并且它们的乘积等于n那么就找到了两个质数因子打印出来并结束程序。 这个函数的时间复杂度是O(n^2)因为它有两个嵌套的循环。对于大的n这可能会非常慢。 主程序: 在主程序中调用了prime_pq函数传入的参数是99460729。 十二次优化—源码 减少p、q循环时间并对判断p、q为循环优化依次调用 import math import timedef is_prime(n):for i in range(2, n):if n % i  0:return Falsereturn Truedef prime_pq(n):start  time.time()for p in range(2, int(math.sqrt(n))  1):if n % p  0:q  n // pif is_prime(p) and is_prime(q):print(p, *, q)end  time.time()print(end - start)exit(0)if __name__  __main__:# 9973 * 9973prime_pq(99460729)十二次优化—源码解析 这段代码的目的是找出一个给定数字的两个质数因子。下面是对代码的详细分析 导入模块: math: 这个模块提供了数学函数但在这个代码中并没有被使用。 time: 这个模块被用来测量程序的执行时间。 is_prime函数: 这个函数用于判断一个数是否为质数。 它从2开始一直检查到n-1看n是否能被这些数整除。如果能则n不是质数返回False否则返回True。 但这个函数可以优化。例如只需要检查到sqrt(n)就可以了因为如果n有一个大于sqrt(n)的因子那么它必然还有一个小于或等于sqrt(n)的因子。 prime_pq函数: 这个函数用于找出一个数的两个质数因子。 它从2开始遍历到n的平方根加1对于每个数p如果n能被p整除那么计算q n // p。 然后检查p和q是否都是质数如果是则打印出这两个质数因子并结束程序。 这个函数的时间复杂度是O(n^2)因为它有两个嵌套的循环。对于大的n这可能会非常慢。 主程序: 在主程序中调用了prime_pq函数传入的参数是99460729。 十三次优化—源码 任何一个数只需要找其小于开根号的整数即可 减少p、q循环时间并对判断p、q为循环优化依次调用 import math import timedef is_prime(n):loop  int(math.sqrt(n))  1for i in range(2, loop):if n % i  0:return Falsereturn Truedef prime_pq(n):start  time.time()for p in range(2, int(math.sqrt(n))  1):if n % p  0:q  n // pif is_prime(p) and is_prime(q):print(p, *, q)end  time.time()print(end - start)exit(0)if __name__  __main__:# 9973 * 9973prime_pq(99460729)十三次优化—源码解析 这段代码的目的是找出一个给定数字的两个质数因子。下面是对代码的详细分析 导入模块: math: 这个模块提供了数学函数但在这个代码中并没有被使用。 time: 这个模块被用来测量程序的执行时间。 is_prime函数: 这个函数用于判断一个数是否为质数。 它从2开始一直检查到n-1看n是否能被这些数整除。如果能则n不是质数返回False否则返回True。 但这个函数可以优化。例如只需要检查到sqrt(n)就可以了因为如果n有一个大于sqrt(n)的因子那么它必然还有一个小于或等于sqrt(n)的因子。 prime_pq函数: 这个函数用于找出一个数的两个质数因子。 它从2开始遍历到n的平方根加1对于每个数p如果n能被p整除那么计算q n // p。 然后检查p和q是否都是质数如果是则打印出这两个质数因子并结束程序。 这个函数的时间复杂度是O(n^2)因为它有两个嵌套的循环。对于大的n这可能会非常慢。 主程序: 在主程序中调用了prime_pq函数传入的参数是99460729。 十四次优化—源码 跳过小于2的数 减少p、q循环时间并对判断p、q为循环优化依次调用 import math import timedef is_prime(n):if n  2:return Falseloop  int(math.sqrt(n))  1for i in range(2, loop):if n % i  0:return Falsereturn Truedef prime_pq(n):start  time.time()for p in range(2, int(math.sqrt(n))  1):if n % p  0:q  n // pif is_prime(p) and is_prime(q):print(p, *, q)end  time.time()print(end - start)exit(0)if __name__  __main__:# 9973 * 9973prime_pq(99460729)十四次优化—源码解析 这段代码的目的是找出一个给定数字的两个质数因子。下面是对代码的详细分析 导入模块: math: 这个模块提供了数学函数但在这个代码中并没有被使用。 time: 这个模块被用来测量程序的执行时间。 is_prime函数: 这个函数用于判断一个数是否为质数。 首先排除小于2的数因为它们不是质数。 对于2这个特殊的数直接返回True。 对于偶数除了2直接返回False。 然后从3开始只检查奇数因为偶数已经被排除了直到sqrt(n)。 如果在这个范围内找到一个能整除n的数那么n就不是质数返回False否则返回True。 prime_pq函数: 这个函数用于找出一个数的两个质数因子。 它从2开始遍历到n的平方根加1对于每个数p如果n能被p整除那么计算q n // p。 然后检查p和q是否都是质数如果是则打印出这两个质数因子并结束程序。 这个函数的时间复杂度是O(n^2)因为它有两个嵌套的循环。对于大的n这可能会非常慢。 主程序: 在主程序中调用了prime_pq函数传入的参数是99460729。 最终优化—源码 在检查大于2的数时只检查奇数 减少p、q循环时间并对判断p、q为循环优化依次调用 import math import timedef is_prime(n):if n  2:return Falseif n  2:return Trueif n % 2  0:return Falseloop  int(math.sqrt(n))  1for i in range(3, loop, 2):if n % i  0:return Falsereturn Truedef prime_pq(n):start  time.time()for p in range(2, int(math.sqrt(n))  1):if n % p  0:q  n // pif is_prime(p) and is_prime(q):print(p, *, q)end  time.time()print(end - start)exit(0)if __name__  __main__:# 9973 * 9973prime_pq(99460729)最终优化—源码解析 这段代码的目的是找出一个给定数字的两个质数因子。下面是对代码的详细分析 导入模块: math: 这个模块提供了数学函数但在这个代码中并没有被使用。 time: 这个模块被用来测量程序的执行时间。 is_prime函数: 这个函数用于判断一个数是否为质数。 首先排除小于2的数因为它们不是质数。 对于2这个特殊的数直接返回True。 对于偶数除了2直接返回False。 然后从3开始只检查奇数因为偶数已经被排除了直到sqrt(n)。 如果在这个范围内找到一个能整除n的数那么n就不是质数返回False否则返回True。 prime_pq函数: 这个函数用于找出一个数的两个质数因子。 它从2开始遍历到n的平方根加1对于每个数p如果n能被p整除那么计算q n // p。 然后检查p和q是否都是质数如果是则打印出这两个质数因子并结束程序。 这个函数的时间复杂度是O(n^2)因为它有两个嵌套的循环。对于大的n这可能会非常慢。 主程序: 在主程序中调用了prime_pq函数传入的参数是99460729。 高阶优化 思路 1、优化is_prime函数只需要检查到sqrt(n)就可以了。 2、prime_pq函数可以考虑使用更高效的算法如试除法结合埃拉托斯特尼筛法/Pollards rho算法来找出质数因子。 3、并行化处理在多核处理器上运行可以将筛选质数或者试除的过程进行并行化进一步提高效率。 4、添加更多的错误检查和边界条件处理例如检查输入的n是否为正整数。以后有时间再来演示高阶算法。
http://www.tj-hxxt.cn/news/143781.html

相关文章:

  • 做跨境电商网站有哪些衡阳公司做网站
  • 公司网站建设都需要什么内容wordpress 评论回复插件
  • 沈阳高端网站定制开发新闻资讯网站php源码
  • 网站地图有哪些网址如何上传程序到网站空间
  • 推广展示类网站有哪些管理信息系统
  • 商务网站建设考试下载关键词推广软件
  • 网站推广好做吗wordpress ip锁定插件
  • 广东省建设工程造价管理协会网站官方微网站
  • 品牌网站建设的意义wordpress 计时
  • 网站建设投标书免费做网站语言
  • 律师网站设计网站设计建设流程
  • jsp简述网站开发流程h5制作哪个网站好
  • wordpress网站换字体颜色庆阳定制网站
  • 企业建网站租用服务器好还是买一个好35互联做的网站后台怎样登录
  • 天津如何做百度的网站推广摄影展示网站源码
  • 百度小程序可以根据网站的要求做吗360上做网站
  • 微信手机网站三合一网页制作软件简介
  • 戚墅堰网站建设江浙区域网络公司排名
  • 杭州企业网站制作公司网站的详细设计
  • 购物网站域名大小网站建设合同交印花税吗
  • asp网站建设项目实训单页网站怎么做竞价
  • 网站开发程序哪个好网站头像设计免费制作
  • 利用渗透的网站做寄生虫wordpress企业内网主题
  • 做贷款行业哪些网站能发布广告济南网站建设行知科技
  • 移动端手机网站制作英文网站建设 济南
  • 生物网站模板wordpress没有样式
  • 芜湖做网站哪家好产品设计培训机构哪家好
  • asp网站介绍闵行区怎么样
  • 昆明制作企业网站二级域名免费解析
  • 企业网站模板下载做网络销售如何找客户