致即将毕业的你之每日一编-000
来源:互联网 发布:java 获取对象的大小 编辑:程序博客网 时间:2024/05/22 10:43
质因数
定义
质因数(素因数或质因子)在数论里是指能整除给定正整数的质数。除了1以外,两个没有其他共同质因子的正整数称为互质。因为1没有质因子,1与任何正整数(包括1本身)都是互质。正整数的因数分解可将正整数表示为一连串的质因子相乘,质因子如重复可以指数表示。根据算术基本定理,任何正整数皆有独一无二的质因子分解式。只有一个质因子的正整数为质数。
每个合数都可以写成几个质数(也可称为素数)相乘的形式,这几个质数就都叫做这个合数的质因数。如果一个质数是某个数的因数,那么就说这个质数是这个数的质因数。而这个因数一定是一个质数。
题目描述
输入一个正整数,按照从小到大的顺序输出它的所有质数的因子(如24的质数因子为 2 2 2 3 ) 最后一个数后面也要有空格
详细描述
函数接口说明: public String getResult(long ulDataInput)
输入参数: long ulDataInput(输入的正整数 )
返回值: String
编程思路
- 明确需求:将输入的正整数质因子分解
- 需求分析:循环找出质因子,如果是质数,则检查输入的正整数是否能整除该质数,如果能被整除,说明该质数是它的一个质因子,然后将该质因子赋值给循环的初始条件,以便下次的检查。
代码实现
方法一
package com.doito.fun;import java.util.Scanner;public class S000 { // 判断是否为质数 public static boolean isPrime(long num) { if (num < 3) { return num > 1; } for (int i = 2; i < Math.sqrt(num); i++) { if (num % 2 == 0) { return false; } } return true; } // 找质因子 public static String getResult(long ulDataInput) { String str = ""; long i = 2; while (i <= ulDataInput) { if (isPrime(i) && ulDataInput % i == 0) { long temp = i; ulDataInput = ulDataInput / i; str = str + i + " "; // 检查是否还可以被该质因子整除 if (ulDataInput % i == 0) { i = temp; continue; } } // 找到了最后一个质因子结束循环 if (ulDataInput == 1) { break; } i++; } return str; } public static void main(String[] args) { Scanner sc = new Scanner(System.in); long ulDataInput = sc.nextLong(); System.out.println(getResult(ulDataInput)); sc.close(); }}
阅读全文
1 0
- 致即将毕业的你之每日一编-000
- 致即将毕业的你之每日一编-001
- 致即将毕业的中国大学生
- 即将毕业的我
- 即将毕业的我
- 即将毕业的专科生
- 即将毕业的计算机专业学生,你要工作吗?
- 每日一编C++
- 即将毕业的计机生@_@~~~~~~!!!
- 给即将毕业的我们
- 写给即将毕业的自己
- 写给即将毕业的自己
- 每日一编C-1
- 每日一编C-2
- 每日一编C-3
- 每日一编C-4
- 每日一编c-5
- 每日一编C-6
- 使用alter命令向sqlite中添加外键
- redis的事务和watch
- unity 中Deferred Lighting (延迟光照)
- 多线程并发下载
- SQL 92连表99连表
- 致即将毕业的你之每日一编-000
- 动态规划入门
- C++之范围for语句
- Java学习笔记-《Java程序员面试宝典》-第5章Java Web-5.3框架(5.3.11-5.3.13)
- 天气预报
- 【学姐的胡策】训练8.17(Lucas+线段树并查集)
- 中国剩余定理+扩展
- py学习之路 第一是
- MySQL_explain关键字分析查询语句