1

分解质因数(5分)

题目内容:

每个非素数(合数)都可以写成几个素数(也可称为质数)相乘的形式,这几个素数就都叫做这个合数的质因数。比如,6可以被分解为2x3,而24可以被分解为2x2x2x3。

现在,你的程序要读入一个[2,100000]范围内的整数,然后输出它的质因数分解式;当读到的就是素数时,输出它本身。

输入格式:

一个整数,范围在[2,100000]内。

输出格式:

形如:

n=axbxcxd

n=n

所有的符号之间都没有空格,x是小写字母x。

输入样例:

18

输出样例:

18=2x3x3

时间限制:500ms内存限制:32000kb

import java.util.Scanner;

public class Main {

public static void main(String[] args) {

Scanner sc = new Scanner(System.in);

int count = 0;// 计数器

int n = 0;// 输入

int nBeifen;// 备份n

int prime = 2;// 素数,第一个素数是2

n = sc.nextInt();

if (prime(n)) {

System.out.printf("%d=%d\n", n, n);// n=n

} else {

System.out.printf("%d=", n);// n=axbxcxd

nBeifen = n;

while (nBeifen > 1) {

if (nBeifen % prime == 0) {

if (count > 0) {

System.out.printf("x");

}

nBeifen = nBeifen / prime;

System.out.printf("%d", prime);

count++;

} else {

prime++;

prime = nextPrime(prime);// 下一个素数

}

}

System.out.printf("\n");

}

}

public static boolean prime(int n) {// 判断是否素数

boolean isPrime = true;// 默认是素数

if (n == 1 || (n % 2 == 0 && n != 2)) {// 判断1或者除了2的偶数

isPrime = false;

} else if (n == 2) {// 判断2

isPrime = true;

} else {// 判断其他

for (int i = 3; i < Math.sqrt(n); i += 2) {

if (n % i == 0) {

isPrime = false;

break;

}

}

}

return isPrime;

}

public static int nextPrime(int n) {// 下一个素数

while (true) {

if (prime(n)) {

return n;

} else {

n++;

}

}

}

}

java nextprime_中国MOOC_零基础学Java语言_第7周 函数_1分解质因数相关推荐

  1. java无线电台RS制信号_中国MOOC_零基础学Java语言_第2周 判断_2信号报告

    2 信号报告(5分) 题目内容: 无线电台的RS制信号报告是由三两个部分组成的: R(Readability) 信号可辨度即清晰度. S(Strength)    信号强度即大小. 其中R位于报告第一 ...

  2. 机械转行java自学经历,零基础学java,血泪总结的干货

    机械转行java自学经历,零基础学java,血泪总结的干货 1.我为什么转行 2.转行之路 3.面试之路 自学路上的网站 Java教程 实践项目一站式学习 bilibili 自学书籍 <Java ...

  3. 零基础学python语言_零基础如何入门Python语言?有哪些学习建议?

    众所周知,Python目前是最受欢迎的编程语言之一,尤其是对于零基础的初学者来说,Python语言更是十分的友好.因此,不少初学者常常会有这样一个共同的疑惑,零基础如何入门Python语言?本文就来给 ...

  4. 翁恺java答案第五周_[JAVA]翁恺老师零基础学java语言第五周素数例题中continue的困惑...

    第五周求前50个素数的例子中,continue跳出当次循环后的疑问 例题中的这段: ======================================== MAIN_LOOP: for(in ...

  5. 零基础学python语言_致初学者:零基础如何学好,Python这门编程语言?

    前言 对于很多Python这门编程语言的初学者,往往会面临以下问题: Python2和Python3我该学习哪一个? 是否要安装Linux系统学习Python? Python3有各种版本我该安装哪一个 ...

  6. 零基础学Java大数据难不难

    java大数据如今在企业中用到的次数是非常多的,很多人都比较看好java技术,那么零基础学Java大数据难不难?想要学习java技术说难不难,说简单也不是很简单,来看看下面的详细介绍就知道了. 零基础 ...

  7. 会java需要多久能学会python_java好学吗?零基础学java要多久?

    java好学吗?零基础学java要多久? 时间:2019-05-21     来源:华清远见 2019年3月,tiOBE 公布了编程语言排行榜,正如官方所说,本月的排名几乎没有任何有趣的变化,排名前十 ...

  8. 零基础学Java,有必要上培训班吗?

    零基础学Java?随着社会信息的发展,Java技术已经无处不在,无论是手机软件.手机Java游戏还是电脑软件等,只要你使用到电子产品就会碰到和Java有关的东西,更多的企业正采用Java语言开发网站. ...

  9. 『零基础学Java语言-浙江大学-翁恺』第6周 使用对象

    以下为个人学习笔记和习题整理 课程:零基础学Java语言-浙江大学-翁恺 @ 中国大学MOOC https://www.icourse163.org/course/ZJU-1001541001 文章目 ...

  10. [零基础学JAVA]Java SE实战开发-37.MIS信息管理系统实战开发[JDBC](1)

    MIS信息管理系统实战开发之使用MySQL实现保存 开发背景 ID.姓名.年龄为公共信息,而学生有成绩,工人有工资 定义一个抽象类Person(ID.姓名.年龄),学生是其子类,有成绩,工人是其子类有 ...

最新文章

  1. java calendar与date_java---Calendar与Date
  2. 励遍图块中的实体_如何删除CAD中的顽固图层?【AutoCAD教程】
  3. Django(part7)--请求及HttpRequest对象
  4. 判断字符串中有多少汉字
  5. [NOIP2003] 提高组 洛谷P1041 传染病控制
  6. ios keychain 不被清理_iOS签名机制和说明文件【ios企业签名吧】
  7. linux环境手动编译安装Nginx实践过程 附异常解决
  8. 在没有创建Provision Profile权限的情况下 发布Enterprise inhouse app 的方法
  9. ThinkPHP5校园图书馆管理系统
  10. QT5 qml的ListView控件使用
  11. 三分钟细数几款可视化前端开发工具
  12. 加权平均法和移动加权法的例题
  13. Cisco Packet Tracer---链路聚合简单配置
  14. c语言找adc最小值,STC12C5A60S2 AD转换C语言示例程序(ADC查询方式)
  15. 《objective-c程序设计》学习笔记
  16. 非转基因保护品种覆盖南北 北方旱作国稻种芯-517功能苦瓜稻
  17. Boolean中0与1的转化
  18. 移动通信技术发展简史:为什么第五次迭代(5G)如此引人瞩目?
  19. 银行数字化转型导师坚鹏:农商行数字化转型案例研究
  20. 图像的直方图计算及绘制(红绿蓝三通道直方图)

热门文章

  1. Direct3D学习笔记
  2. Linux firefox2.0自动升级后启动不了
  3. Redis 常用命令操作
  4. Python安装学习
  5. redis 慢日志查询
  6. 单层感知机实现或运算
  7. 常见的一些正则表达式!
  8. MySQL数据库接口的VC具体实现与应用
  9. 七月算法机器学习 10 聚类算法与应用
  10. 每日一句20191019