华为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))
相关推荐
和小潘一起学AI16 小时前
CentOS 7安装Anaconda
开发语言·python
kcuwu.16 小时前
Python 正则表达式从入门到实战
数据库·python·正则表达式
不解不惑16 小时前
langchain qwen3 构建一个简单的对话系统
pytorch·python·langchain
sinat_2869451916 小时前
harness engineering
人工智能·算法·chatgpt
努力努力再努力dyx16 小时前
【无标题】
开发语言·python
I疯子16 小时前
2026-04-07 打卡第 4 天
python
数据知道16 小时前
claw-code 源码分析:Tool Pool 组装——默认策略、过滤、MCP 开关如何影响「可用工具面」?
python·claude code·claw code
少许极端16 小时前
算法奇妙屋(四十三)-贪心算法学习之路10
学习·算法·贪心算法
Zzj_tju16 小时前
Java 从入门到精通(十二):File 与 IO 流基础,为什么程序“读写文件”时总是容易出问题?
java·python·php
汽车搬砖家16 小时前
vSOMEIP系列 -6: vsomeip python版部署,双机跨域通信(vsomeip - davinci AP someip)
python·汽车