华为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))
相关推荐
清水白石0081 小时前
隔离的艺术:用 `unittest.mock` 驯服外部依赖,让测试真正可控
python
舟舟亢亢2 小时前
算法总结——二叉树【hot100】(上)
java·开发语言·算法
码农小韩2 小时前
AIAgent应用开发——大模型理论基础与应用(五)
人工智能·python·提示词工程·aiagent
百锦再2 小时前
Java中的char、String、StringBuilder与StringBuffer 深度详解
java·开发语言·python·struts·kafka·tomcat·maven
Jonathan Star3 小时前
Ant Design (antd) Form 组件中必填项的星号(*)从标签左侧移到右侧
人工智能·python·tensorflow
weixin_477271693 小时前
根象:树根。基石。基于马王堆帛书《周易》原文及甲骨文还原周朝生活活动现象(《函谷门》原创)
算法·图搜索算法
普通网友3 小时前
多协议网络库设计
开发语言·c++·算法
努力努力再努力wz3 小时前
【Linux网络系列】:TCP 的秩序与策略:揭秘传输层如何从不可靠的网络中构建绝对可靠的通信信道
java·linux·开发语言·数据结构·c++·python·算法
deep_drink3 小时前
【论文精读(三)】PointMLP:大道至简,无需卷积与注意力的纯MLP点云网络 (ICLR 2022)
人工智能·pytorch·python·深度学习·3d·point cloud
daxi1503 小时前
C语言从入门到进阶——第9讲:函数递归
c语言·开发语言·c++·算法·蓝桥杯