都好多天没有写了,虽然感觉又好多的事情要做,却不知道该从哪里开始去做,想到了华为的机试题,然后,又过来做道。

题目描述

功能:输入一个正整数,按照从小到大的顺序输出它的所有质数的因子(如180的质数因子为2 2 3 3 5 )最后一个数后面也要有空格

详细描述:

函数接口说明:public String getResult(long ulDataInput)

输入参数:long ulDataInput:输入的正整数

返回值:String

题目分析:

首先,看到这道题目,我们可以想到的第一件事情就是,质数,如何判断质数,因为我们要找到一个数的因子,而这个因子必须是质数,所以,我们先写出判读一个数是不是质数,当然,判断质数是比较简单的,我考虑到,要用好几次,然后就抽出一个方法,专门用于判断是不是质数,返回是boolean类型的值,定义如下: static boolean isPrime(long num),我们设置为静态方法。接着,我们接受一个long类型的整数,然后去除以质数,如何选择质数,我们从p=2开始,判断p++是不是质数,如果是,则把num进行相处,直达不能整除为止,如果不是,则一直p++,知道P++为质数为止。第二步要做的就是,当最后的一个为质数,或者出完为一时,我们循环结束。

在这道题目当中,由于要输出的是字符串,我们自然想到String,可是我们要不停的网字符串后面拼接,显然用String类型效率较低,我们考虑使用StringBuilder类,借用append方法进行拼接,效率较高。使用这个的第二个问题是,append里面需要接收一个String类型的,可是我们得到的是int类型或者long类型,需要转化为Sting,我们使用的方法是Integer.toString()方法和String.valueOf()方法。

具体代码如下:

import java.util.Scanner;

public class Main {

public static void main(String[] args) {

Scanner scanner = new Scanner(http://System.in);

long num = scanner.nextLong();

boolean flag = true;

int p = 2;

StringBuilder out = new StringBuilder();

while(flag){

if (num%p==0) {

num = num/p;

out.append(Integer.toString(p)).append(" ");

}else {

p++;

if(!isPrime(p)){

p++;

}

}

if(isPrime(num)){

if (num == 1) {

flag = false;

}else {

out.append(String.valueOf(num)).append(" ");

flag = false;

}

}

}

System.out.print(out.toString());

scanner.close();

}

static boolean isPrime(long num){

for (int i = 2; i < Math.sqrt(num)+1; i++) {

if (num%i==0) {

return false;

}

}

return true;

}

}

,实验结果仿真如下:

知识点总结:

对于经常使用的方方,可以抽取出来,提高代码的重用性,对于工具类的方法,可是使用static静态方法;

static boolean isPrime(long num){

for (int i = 2; i < Math.sqrt(num)+1; i++) {

if (num%i==0) {

return false;

}

}

return true;

}

一个数的平方根: Math.sqrt();

使用字符串拼接,常用的类型为:StringBuilder;进行拼接用append(),将StringBuilder转化为String类型用.toString();

质数因子 java_质数因子相关推荐

  1. Java_质数_两种解法(时间对比)

    Java_质数 什么是质数: "质数是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数." 测试两个求质数的方式: 测试数据一.测试数量[10万] 方式一:Boole ...

  2. 算术基本定理之统计质因子个数———以及因子的个数

    算术基本定理,又称为正整数的唯一分解定理,即:每个大于1的自然数均可写为质数的积,而且这些素因子按大小排列之后,写法仅有一种方式. 例如 90=2 * 3^2 * 5: 1 我们要做的就是找到90的所 ...

  3. 改进筛法- 质数中的质数(质数筛法)

    1181 质数中的质数(质数筛法) 题目来源: Sgu 基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题 如果一个质数,在质数列表中的编号也是质数,那么就称之为质数中的质数 ...

  4. 【量化交易】 量化因子 情绪类因子计算

    量化因子 - 情绪类因子 中证500,近三年超额收益因子排序 10日成交量标准差 VSTD10 10日成交量去标准差 成交量的5日指数移动平均 VEMA5 成交量的5日指数移动平均 成交量的10日指数 ...

  5. 双因子与多因子身份验证有什么区别?

    双因子身份验证(Two-Factor Authentication, 2FA)是多因子身份验证(Multi-Factor Authentication, MFA)的一种.这两种身份验证解决方案都需要额 ...

  6. 中信期货财务因题专题报告:财务因子之单因子测试

    中信期货财务因题专题报告:财务因子之单因子测试 报告时间:2022-02-09 R语言 Python 量化选股 因子选股 pandas numpy seasonal plotly 文章目录 中信期货财 ...

  7. 规模因子和价值因子—进一步理解系统性风险

    上世纪二十年代的美国,当时的美国股市是一个高度散户化的市场,很多人就从交易中总结了市场规律,许多形形色色的规律都是昙花一现,唯独有两个策略经久不衰. 其中一个规律是买入市净率低的股票,"市净 ...

  8. 用js代码判断质数_Js关于质数的判定

    质数的定义 质数(Prime number),又称素数,指在大于1的自然数中,除了1和该数自身外,无法被其他自然数整除的数(也可定义为只有1与该数本身两个正因数的数).大于1的自然数若不是素数,则称之 ...

  9. 信号时域分析方法的理解(峰值因子、脉冲因子、裕度因子、峭度因子、波形因子和偏度等)

    最近要做关于信号处理的一些工作,涉及时域.频域分析,滤波.神经网络以及贝叶斯等内容.在此做一些整理,作为梳理思路的笔记,也希望能对读者有所帮助. 文章如要转载请私信与我联系,并注明来源知乎专栏与信号处 ...

最新文章

  1. 《AutoCAD全套园林图纸绘制自学手册》一第1章 园林设计基本概念1.1 概述
  2. centos6.5环境下zookeeper-3.4.6集群环境部署及单机部署详解
  3. 数据竞赛:记录3天进入比赛Top3%的全过程
  4. 111 第一章操作系统概述总结思维导图+错题整理
  5. 【JavaEE企业应用实战学习记录】struts配置文件详细解析
  6. ios gb2312转utf-8
  7. 三网融合情况下,实时语音通信技术的研究
  8. 输入输出Fibonacci数
  9. 【Matplotlib】【Python】如何使用matplotlib自动保存图表
  10. Xcode 代码格式化/自动排版
  11. 使命召唤ol服务器位置,服务器架构升级 使命召唤OL跨区作战时代来临!
  12. Django-session操作
  13. 机器学习实战——AdaBoost
  14. 学号 20165329 《Java程序设计》第4周学习总结
  15. 三星手机PIN码忘记锁机解决方法
  16. 中兴MF667S WCDMA猫Linux拨号笔记
  17. Enhancing Diversity in Teacher-Student Networks via Asymmetric branches for Unsupervised reid论文解读
  18. 果然十三香!史上最强iPhone13来了:全面降价、刘海缩小,支持120HZ高刷!网友:真香!苹果:业内苦苦追赶我们的芯片性能...
  19. 谷歌与Facebook的关系数据库之战
  20. Sign in With Apple (苹果授权登录)

热门文章

  1. 广度优先搜索——岛屿数量(Leetcode 200)
  2. 贪心——买卖股票的最佳时机(Leetcode 122)
  3. matlab 卷积 拉普拉斯滤波,卷积滤波和边缘检测
  4. python中set函数是什么数据类型_Python基本数据类型之set
  5. c语言解三元一次方程组_七年级下学期《8.3 一元一次不等式组》2020年高频易错题集...
  6. 开启服务_Nike Dunk 开启定制服务
  7. 本周四晚8点直播预告丨探秘MySQL极限,解锁核心运维关卡
  8. 带你认识4种设计模式:代理模式、装饰模式、外观模式和享元模式
  9. 30岁+程序员职场攻略:找到自己的“职业锚”乘风破浪
  10. 【华为云技术分享】【Python算法】分类与预测——决策树