正整数分解质因数

package com.it;

import javax.swing.JOptionPane;

/*
* 正整数分解质因数
* 题目:
* 将一个正整数分解质因数.例如:户三人90,打印出90=2*3*3*5.
*
* 需求分析:
* 对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:
* 1).如果这个质数恰等于n,则说明分解质因数的过程已结束,打印出即可.
* 2).如果n<>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数,重复执行第一步;
* 3).如果n不能被k整除,则用k+1作为k的值,重复执行第一步.
*/

public class ResolvePrimeNumber {
// 公有无参构造方法
public ResolvePrimeNumber() {
}
//递归方法
public void getPositive(int n) {
//for循环,从2开始,i要小于等于n/2的商,i++
for (int i = 2; i <= n/2 ; i++) {
//判断n%i余数为0
if (n%i==0) {
System.out.print(i+"*");
//方法的内部调用方法本身
getPositive(n/i);
}
}
System.out.print(n);
//没有满足上面的条件:i <= n/2就转到了下面的出口
//终止当前的虚拟机,System:static void exit(int status)
System.exit(0);
}
//主方法
public static void main(String[] args) {
//定义字符串
String str = "";
//创建对象
ResolvePrimeNumber rpn = new ResolvePrimeNumber();
//JOptionPane:static String showInputDialog(Object message)
str = JOptionPane.showInputDialog("请输入N的值(输入exit退出):");
//定义变量
int positive = 0;
//包裹可能出现问题的代码
try {
positive = Integer.parseInt(str);
//定义异常对象:NumberFormatException
} catch (NumberFormatException e) {
//将此 throwable及其追踪输出至标准错误流,异常根类Throwable:void printStackTrace()
e.printStackTrace();
}
System.out.print(positive+"分解质因数: "+positive+"=");
//调用方法
rpn.getPositive(positive);
}
}

#Java工程师#
全部评论

相关推荐

04-14 15:01
已编辑
重庆邮电大学 C++
问项目项目中的优化在接触一个新的领域的时候,是怎么去了解的项目中有没有做具体的横向调研八股:1、介绍虚函数2、虚函数的实现,vptr、vtable3、能不能在构造函数中调用虚函数(可以,但是派生类没有构造完成时,调用虚函数并不会呈现多态)4、为什么父类的析构函数要定义为虚函数5、多态的实现6、介绍线程和进程的区别,在项目中有没有用过多线程?如何确保线程的安全?7、线程死锁,如何打破死锁(互斥、不可剥夺、循环等待、占有等待)8、TCP头格式(port、seq、ack、校验和、头部长、保留、码元比特、紧急指针)9、TCP为什么必须是3次握手(2的ACK-&gt;1的SYN,3的ACK-&gt;2的SYN,连接本质是两个套接字维护的有限状态机,同时到达establish之后,才能发送数据)。10、TCP可靠的实现(流控+拥控+差错)。为什么TCP的ISN必须是随机值(防止IP假冒攻击)11、拥塞控制12、TCP和UDP的区别13、介绍智能指针(auto/unique/shared/weak)14、shared_ptr的实现(实现的思路)15、shared_ptr是不是线程安全(引用计数是线程安全的,但多线程访问shared_ptr指向的对象不一定安全)16、weak_ptr和shared_ptr的搭配使用17、shared_ptr所存在的问题(1、创建/销毁的性能开销,频繁的话,考虑使用unique_ptr。2、循环计数问题:加入weak_ptr)18、mutex实现的思路做题反问:转正机会
查看21道真题和解析
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务