华为OD-素数之积

题目描述

RSA加密算法在网络安全世界中无处不在,它利用了极大整数因数分解的困难度,数据越大,安全系数越高,给定一个32位正整数,请对其进行因数分解,找出是哪两个素数的乘积。

输入描述

  1. 一个正整数num

  2. 0 < num <= 2147483647

输出描述

  1. 如果成功找到,以单个空格分割,从小到大输出两个素数,分解失败,请输出-1 -1

示例一

输入

复制代码
15

输出

复制代码
3 5

代码实现

python 复制代码
# coding:utf-8
# 素数之积
import math


class Solution:
    def primeProdcut(self, n):
        s = int(math.sqrt(n))
        res = ''
        flag = False
        for i in range(2, s + 1):
            if n % i == 0:
                if self.is_prime(i) and self.is_prime(n // i):
                    flag = True
                    if i < n // i:
                        res = f"{i} {n // i}"
                    else:
                        res = f"{n // i} {n}"
        if flag:
            return res
        else:
            return "-1 -1"

    def is_prime(self, n):
        if n < 2:
            return False
        for i in range(2, int(math.sqrt(n)) + 1):
            if n % i == 0:
                return False
        return True


if __name__ == '__main__':
    s = int(input("input:"))
    solution = Solution()
    print(solution.primeProdcut(s))
相关推荐
2301_809204707 分钟前
bootstrap怎么实现鼠标悬停切换图片预览功能
jvm·数据库·python
小徐学编程-zZ4 小时前
量产测试数据
python·压力测试·数据库架构
QQ8057806514 小时前
django基于机器学习的电商评论情感分析系统设计实现
python·机器学习·django
X journey4 小时前
机器学习进阶(13):支持向量机SVM
算法·机器学习·支持向量机
wx09094 小时前
stata实现机器学习的环境配置
python·机器学习·stata
洛水水5 小时前
【力扣100题】30.二叉树的直径
算法·leetcode·职场和发展
gihigo19985 小时前
Bezier曲线曲面生成算法
算法
平行侠6 小时前
024多精度大整数 - 突破硬件精度限制的任意精度运算
数据结构·算法
nuowenyadelunwen6 小时前
CS 61A Lab 2 笔记:短路求值、高阶函数与 Lambda 表达式
python·函数式编程·cs61a·berkeley
IronMurphy6 小时前
【算法四十五】139. 单词拆分
算法