python输入一个整数、输出该整数的所有素数因子_一个正整数的所有质数因子

该博客介绍了一个算法,用于找出一个正整数的所有质数因子。通过输入一个数字,程序会逐步分解并打印出其所有质数因子,直到无法再进行质因数分解为止。例如,90的质数因子为2、3、3和5,20的质数因子为2、2和5,而9的质数因子为3和3。算法首先从2开始,检查数字是否能被当前质数整除,若能则输出该质数并更新数字,直至找不到新的质数因子。
摘要由CSDN通过智能技术生成

质数(素数):公因子只有两个值,一个是1,一个是本身这个数。

一个正整数的所有质数因子是什么意思呢?

举个例子:

90 = 2 * 3 * 3 * 5;

20 = 2 * 2 *5;

36 = 2 * 2 * 3 * 3;

9 = 3 * 3;

所以我们要的做的是,输入一个数字,输出包括重复的所有质数因子;

算法步骤:

1、输入的整数n,对最小的一个质数i=2求余;

2、如果得到余数为0,重复执行1;

3、如果得到的商不为0,i++;执行1,2;

4、终止条件为n/=i == i,也就是n除以质数后的值等i这个质因子;

import java.util.Scanner;

public class Main {

public static void main(String[] args){

Scanner sc = new Scanner(System.in);

long num = sc.nextLong();

long k = (long)Math.sqrt(num);// 优化,使得for循环提早结束.

for (long i = 2; i <= k;i++) {

while(num != i) {

if (num % i == 0) {

System.out.print(i + " ");

num =num / i;

} else {

break;

}

}

}

System.out.print(num);

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值