每颗珍珠原本都是一粒沙子,但并不是每粒沙子都能成为珍珠。你得明白,想要卓尔不群,就要有技惊四座的资本;想要一呼百应,就要有海纳百川的心胸。忍受不了磨炼与挫折,承受不住忽视和平淡,就很难达到你所期望的辉煌。人生,原本就应该在阳光下灿烂,在风雨中奔跑。从今天开始,找到最好的自己,奔向更好的未来!早安!
█ Java问题:
每日一题:题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。
程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:
(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。
(2)如果n不等于k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数n,重复执行第一步。
(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。
█ 代码贴图:
########################################################
########################################################
########################################################
########################################################
import java.util.Scanner;
/**
* 题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。
* 程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:
* (1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。
* (2)如果n不等于k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数n,重复执行第一步。
* (3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。
*
* Date 11.15
*
*/
public class Prog9整数分解因式 {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
while (true) {
System.out.println("请输入一个整数:(输入exit退出 )");
if (in.hasNextInt()) {
decompose(in.nextInt());
} else if ("exit".equals(in.next())) {
System.out.println("退出成功~");
break;
}
}
in.close();
}
private static void decompose(int n) {
//必须是大于2的整数
if (n < 2) {
System.out.print("请输入一个大于2的整数,");
return;
}
//如果是素数直接输出
if (isPrime(n)) {
System.out.println(n + "=" + n);
return;
}
System.out.print(n + "=");
//分解因式
for (int i = 2; i < n + 1; i++) {
while (n % i == 0 && n != i) {
n /= i;
System.out.print(i + "*");
}
if (n == i) {
System.out.println(i);
break;
}
}
}
/**
* 素数:质数(prime number)又称素数,有无限个。质数定义为在大于1的自然数中,
* 除了1和它本身以外不再有其他因数的数称为质数。
*
* 基本判断思路:
* 在一般领域,对正整数n,如果用2到根下N之间的所有整数去除,均无法整除,则n为质数。
* 质数大于等于2 不能被它本身和1以外的数整除
*/
private static boolean isPrime(int n) {
if (n <= 3) {
return n > 1;// 2,3是素数
}
for (int i = 2; i <= Math.sqrt(n); i++) {
if (n % i == 0)
return false;
}
return true;
}
}
大家早上好啊,今天是星期二了,凡是秉持自己信念而活,就能产生自尊自重与自制力,并且内心平和,你会以内在价值标准,而不是旁人的好恶或别人的比较的结果,来衡量自己,这时候,对事情的对错与别人是否发现无关。加油哦
PS :本篇文章内容不是自己写的,是从崔老师发出来的内容中稍微整理后的博客,顶部的贴图来自微信公众号【人民日报】,最后的一段话,是来自王老师、吴老师的心灵鸡汤!
█ 相关资料:
1.人民日报 微信公众号
来了!新闻早班车-人民日报 微信公众号
连接:http://mp.weixin.qq.com/s/nBjJ2vB_gsr-w-Gz7e_0Lw
2.金老师的建议:
有一大部分同学在学习java的时候,要接收一个用户输入(如:input.nextInt()),基本都没有做输入检查。有没有发现程序非常不稳定,输入一个非数字时,程序一下就崩溃了。
大家可以讨论一下你们一般怎么来解决这一的程序问题。try catch?hasNextInt()?
● 这是非常常见的一个问题,大家是不是可以封装一个方法来解决这个问题,非常具有通用性,然后每次要使用的时候就调用封装的方法即可。
● 要接收一个整数,那就返回整数了,要接收一个浮点数,就返回一个浮点数了,要搞清楚方法的作用是什么,做输入检查
● 如果输入不对,是不是就不让程序进入下一步呢,要输入正确才能下一步,或者是给一个退出循环的出口,这样给用户的体验是不是会更好呢,程序也更加健壮。
PS :本篇文章使用的内容如果涉及到侵权问题、违反相关规则请联系我,立即删除。