华为OD机试统一考试D卷C卷 - 素数之积/RSA加密算法
题目描述
RSA加密算法在网络安全世界中无处不在,它利用了极大整数因数分解的困难度,数据越大,安全系数越高,给定一个32位正整数,请对其进行因数分解,找出是哪两个素数的乘积。
输入描述
一个正整数num,0 < num <= 2147483647
输出描述
如果成功找到,以单个空格分割,从小到大输出两个素数,分解失败,请输出-1, -1
用例
输入 |
15 |
输出 |
3 5 |
输入 |
27 |
输出 |
-1 -1 |
Java
import java.util.Scanner; public class Main { public static boolean isPrime(int num) { if (num <= 3) { return num > 1; } if (num % 6 != 1 && num % 6 != 5) { return false; } for (int i = 5; i <= Math.sqrt(num); i += 6) { if (num % i == 0 || num % (i
剩余60%内容,订阅专栏后可继续查看/也可单篇购买
机试E卷D卷刷题日记 文章被收录于专栏
机试刷题记录