【Java学习之代码学习】 Prog09_整数分解因式_java一个整数分解因式-程序员宅基地

技术标签: java学习  

这里写图片描述

每颗珍珠原本都是一粒沙子,但并不是每粒沙子都能成为珍珠。你得明白,想要卓尔不群,就要有技惊四座的资本;想要一呼百应,就要有海纳百川的心胸。忍受不了磨炼与挫折,承受不住忽视和平淡,就很难达到你所期望的辉煌。人生,原本就应该在阳光下灿烂,在风雨中奔跑。从今天开始,找到最好的自己,奔向更好的未来!早安!

█ 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 :本篇文章使用的内容如果涉及到侵权问题、违反相关规则请联系我,立即删除。
  

转载请注明出处:http://blog.csdn.net/ljb568838953/article/details/53418302

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/ljb568838953/article/details/53418302

智能推荐

王斌老师的博客_王斌 github-程序员宅基地

文章浏览阅读480次。http://blog.sina.com.cn/s/blog_736d0b9101018cgc.html_王斌 github

ACM OJ Collection_htt//acm.wydtang.top/-程序员宅基地

文章浏览阅读737次。原文来自:http://blog.csdn.net/hncqp/article/details/4455263 ACM OJ Collection(排名不分先后):中国:浙江大学(ZJU):http://acm.zju.edu.cn/北京大学(PKU):htt_htt//acm.wydtang.top/

ios 自己服务器 苹果支付_修复苹果IOS支付-程序员宅基地

文章浏览阅读467次。更新记录1.0.0(2019-07-01)插件简介专门用来修复苹果IOS支付时出现"您已购买此App内购买项目。此项目将免费恢复"。问题描述首先在IOS平台里面创建“APP内购买项目”,选择的是“消耗型项目”,然后用uni-app官方的支付api进行支付,多支付几次,有时候就会出现提示“您已购买此App内购买项目。此项目将免费恢复”,特别是在沙盒测试里面支付很大几率出现,我明明选的是消耗型项目,应..._ios开发苹果支付恢复权益

spring MVC mock类单元测试(controller)_mvcmock-程序员宅基地

文章浏览阅读5.6k次。Spring从J2EE的Web端为每个关键接口提供了一个mock实现:MockHttpServletRequest几乎每个单元测试中都要使用这个类,它是J2EE Web应用程序最常用的接口HttpServletRequest的mock实现。MockHttpServletResponse此对象用于HttpServletRespons_mvcmock

【我的世界Minecraft-MC】常见及各种指令大杂烩【2022.8版】_summon生成掉落物-程序员宅基地

文章浏览阅读8.5k次,点赞7次,收藏22次。execute as @a at @s run clear @s minecraft:dark_oak_planks{display:{Name:“{“text”:“第三关[阴森古堡]”,“color”:“red”,“italic”:false}”,color:“16711680”},Enchantments:[{id:“protection”,lvl:1}],Unbreakable:1b} 1。Lore:[“{“text”:“免费”,“color”:“blue”,“italic”:false}”]..._summon生成掉落物

CentOS 7安装教程(图文详解)_centos 安装-程序员宅基地

文章浏览阅读10w+次,点赞487次,收藏2.1k次。CentOS 7安装教程: 准备: 软件:VMware Workstation 镜像文件:CentOS-7-x86_64-bin-DVD1.iso (附:教程较为详细,注释较多,故将操作的选项进行了加粗字体显示。) 1、文件--新建虚拟机--自定义 2、..._centos 安装

随便推点

Github项目分享——免费的画图工具drow,前端插件化面试_draw github画图-程序员宅基地

文章浏览阅读333次,点赞3次,收藏3次。项目介绍一款很好用的免费画图软件,支持ER图、时序图、流程图等等在项目的releases就可以下载最新版本同时支持在线编辑。_draw github画图

如何开始学习人工智能?入门的学习路径和资源是什么?_人工智能学习路径-程序员宅基地

文章浏览阅读930次。嗨,大家好!如果你对人工智能充满了好奇,并且想要入门这个领域,那么你来对地方了。本文将向你介绍如何从零基础开始学习人工智能,并逐步掌握核心概念和技能。无论你是大学生、职场新人还是对人工智能感兴趣的任何人,都可以按照以下学习路径逐步提升自己。_人工智能学习路径

Unity3D 导入资源_unity怎么导入压缩包-程序员宅基地

文章浏览阅读4.3k次,点赞2次,收藏8次。打开Unity3D的:window-asset store就会出来这样的界面:我们选择一个天空纹理,注意这里的标签只有一个,如果有多个就会显示所有标签的内容:找个比较小的免费的下载一下试试,比如这个:下载以后:点击import就会出现该窗口:然后再点击最底下的import:就导入到我们这里来了。从上面可以切换场景:..._unity怎么导入压缩包

jqgrid 服务器端验证,javascript – jqgrid服务器端错误消息/验证处理-程序员宅基地

文章浏览阅读254次。在你以前的问题的the answer的最后一部分,我试着给出你当前的问题的答案.也许我表示不够清楚.您不应该将错误信息放在标准成功响应中.您应该遵循用于服务器和客户端之间通信的HTTP协议的主要规则.根据HTTP协议实现网格中的加载数据,编辑行和与服务器的所有Ajax通信.每个HTTP响应都有响应第一行的状态代码.了解这个意义非常重要.典型的JSON数据成功请求如下HTTP/1.1 200 OK...._decode message error

白山头讲PV: 用calibre进行layout之间的比对-程序员宅基地

文章浏览阅读4k次,点赞8次,收藏29次。我们在流片之后,通常还是有机会对layout进行局部小的修改。例如metal change eco或者一些层次的局部修改。当我们修改之后,需要进行与之前gds的对比,以便确认没有因为某些..._calibre dbdiff

java exit方法_Java:如何测试调用System.exit()的方法?-程序员宅基地

文章浏览阅读694次。问题我有一些方法应该在某些输入上调用567779278。不幸的是,测试这些情况会导致JUnit终止!将方法调用放在新线程中似乎没有帮助,因为System.exit()终止了JVM,而不仅仅是当前线程。是否有任何常见的处理方式?例如,我可以将存根替换为System.exit()吗?[编辑]有问题的类实际上是一个命令行工具,我试图在JUnit中测试。也许JUnit根本不适合这份工作?建议使用互补回归测..._检查system.exit