java数据结构与算法刷题-----牛客,华为机试:HJ6 质数因子

华为——质数因子_ 题目描述 功能:输入一个正整数,按照从小到大的顺序输出它的所有质数的因子(如180的质数因子为2 2 3 3 5 ) 最后一个数后面也要有空格 详细描述: 函数接口说明: public String getResult(long ulDataInput) 输入参数: long ulDataInput:输入的正整数 返回值: Stri 阅读详情
java数据结构与算法刷题目录(剑指Offer、LeetCode、ACM)-----主目录-----持续更新(进不去说明我没写完):https://blog.youkuaiyun.com/grd_java/article/details/123063846

在这里插入图片描述

  1. 思路分析
  1. 质数,素数:除本身的绝对值外、不可能为大于1的整数除尽的数
  2. 因子:如果整数A除B,得出结果是没有余数的整数,就称B是A的因子。比如8的因子有1,2,4和8。
  3. 质数因子:整数A的因子里面的质数,某一正整数的质因子是,能整除该数的质数整数。
  4. 分解质因数:就是质因子相乘,乘起来正好等于合数。常用的是短除法,比如18,先除以最小的"可以整除当前数的质因数"18/2=9,然后再除以9最小的质因数9/3=3,3本身就是质数,没有其它质因子了。因此18的分解质因数为18=2 * 3 * 3
    在这里插入图片描述
  5. 同理:180/2 = 90,90/2 = 45,45/3 = 15,15/3 = 5,5本身为质数,没有其它质因子了,因此180 = 2 * 2 * 3 * 3 * 5;
  6. 因此,根据这道题给的说明,要求的就是分解质因数
  7. 判断一个数num是否是质数时,如果判断到√num还没有找到可以整除num的数,这可以中断了,因为num肯定是一个质数。
  1. 代码
    在这里插入图片描述
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
        String line = null;
        while ((line = bufferedReader.readLine())!=null){
            Long aLong = Long.valueOf(line);//先拿到数180
            double sqrt = Math.sqrt(aLong);//开平方根,判断质数的时候节省时间
            //先找质因子数,只需要找到sqrt
            for(long i = 2;i<=sqrt;i++){
                //短除法,180%2,2是最小质数,如果可以整除aLong,代表是因数
                //180整除完成后,接下来除90,当前2还是最小质数因子,那么90继续用2来整除得45
                //45%2 !=0 ,那么前往for,用3接着来除
                //因为质数的特性,例如181,无法被2整除,那么4这个合数,也是没法整除它
                //181,无法被3整除,那么6这个合数,9这个合数,也没法整除它
                //因此,只需要从最小的开始枚举,依次整除即可。
                while(aLong%i == 0){
                    System.out.print(i + " ");
                    aLong /= i;
                }
            }
            //如果aLong被整除完成,为1.那么代表它本身不是质数,前面结果已经输出完成
            //但是如果aLong!=1,说明它是质数,只有1和本身可以整除,1不是质因子,因此,直接输出aLong
            System.out.println(aLong==1?"":aLong + " ");
        }
    }
}

刷题一定要坚持,总结套路,不单单要把题做出来,要举一反三,也要参考别人的思路,学习别人解题的优点,找出你觉得可以优化的点。

  1. 单链表解题思路:双指针、快慢指针、反转链表、预先指针
  1. 双指针:对于单链表而言,可以方便的让我们遍历结点,并做一些额外的事
  2. 快慢指针:常用于找链表中点,找循环链表的循环点,一般快指针每次移动两个结点,慢指针每次移动一个结点。
  3. 反转链表:通常有些题,将链表反转后会更好做,一般选用三指针迭代法,递归的空间复杂度有点高
  4. 预先指针:常用于找结点,比如找倒数第3个结点,那么定义两个指针,第一个指针先移动3个结点,然后两个指针一起遍历,当第一个指针遍历完成,第二个指针指向的结点就是要找的结点
  1. 数组解题思路:双指针、三指针,下标标记
  1. 双指针:多用于减少时间复杂度,快速遍历数组
  2. 三指针:多用于二分查找,分为中间指针,左和右指针
  3. 下标标记:常用于在数组范围内找东西,而不想使用额外的空间的情况,比如找数组长度为n,元素取值范围为[1,n]的数组中没有出现的数字,遍历每个元素,然后将对应下标位置的元素变为负数或者超出[1,n]范围的正数,最后没有发生变化的元素,就是缺少的值。
  1. 栈解题思路:倒着入栈,双栈
  1. 倒着入栈:适用于出栈时想让输出是正序的情况。比如字符串’abc’,如果倒着入栈,那么栈中元素是(c,b,a)。栈是先进后出,此时出栈,结果为abc。
  2. 双栈:适用于实现队列的先入先出效果。一个栈负责输入,另一个栈负责输出。
常用本体建模工具 常用本体建模工具: Apollo、OntoStudio、TopBraid Composer、Semantic Turkey、Knoodl、Chimaera、OliEd、WebODE、Kmgen和DOME Protégé Protégé[1]是一款由斯坦福大学编写并维护的开源本体建模和编辑工具,其支持Web版本和PC版本,使用OWL语言(关于OWL的详细介绍可参看前文2.1节内容)对知识进行表示,读者可以通过Protégé的官方网站访问Web版本或下载桌面版本。Protégé最早开发于1987年,最初目的是 阅读详情

相关推荐

Vue3实战:从零构建ElementPlus后台管理系统全流程

本文详细介绍了从零开始使用Vue3和ElementPlus构建后台管理系统的全流程。内容涵盖环境准备、项目初始化、Vite配置、SCSS样式体系搭建、ElementPlus组件库引入与配置,以及封装可复用的SvgIcon组件进行图标管理,旨在帮助开发者快速搭建现代化、可维护的中后台应用。

weixin_29011239的博客 160

HJ6 质数因子

数据范围: 1≤n≤2×109+14 1≤n≤2×109+14。功能:输入一个正整数,按照从小到大的顺序输出它的所有质因子(按照从小到大的顺序输出它的所有质数的因子,以空格隔开。)(如 180 的质因子为 2 2 3 3 5 )

???的博客 218

企业IT运维实录:批量部署银河麒麟V10-SP1,Ghost镜像与UKey激活实战

本文详细介绍了企业级银河麒麟V10-SP1操作系统的批量部署全流程,包括标准化镜像制作、自动化封装技术、网络化部署方案及UKey集群激活方案。通过实战案例和技术要点解析,帮助企业IT运维团队大幅提升部署效率,确保系统安全与稳定性。

weixin_30729609的博客 388

华为机试HJ6

Java实现------HJ 6 质数因子

starry_night_summer的博客 250

影刀RPA之成绩批量查询系统

自动化登录账号,读取数据表中内容去填写信息去查询,并判断多个数据不同的页面去不同的读取查询结果内容,如考生各项信息与各科成绩,总分和查询时间,采集出来到指定的数据表格中,等待时间并依次循环运行。主要功能。

2201_75330891的博客 1085

仿人型机械臂逆运动学避坑指南:当末端三关节平行时如何处理奇异点

本文深入探讨了6R仿人型机械臂在末三轴平行结构下的逆运动学求解策略,重点分析了运动学逆解中的奇异点问题及其处理方法。通过MATLAB实现展示了D-H参数建模、几何解析法求解流程以及奇异点规避策略,为工业机器人开发提供了实用的数值算法方案和工程优化技巧。

sss66的博客 884

HJ6 质数因子(Java版)

对于给定的整数nn,从小到大依次输出它的全部质因子。即找到这样的质数p1,p2,⋯ ,pkp1​,p2​,⋯,pk​,使得n=p1×p2×⋯×pkn=p1​×p2​×⋯×pk​。在一行上输入一个整数n(2≦n≦2×108+14)n(2≦n≦2×108+14)代表待分解的整数。在这个样例中,180=2×2×3×3×5180=2×2×3×3×5。通过率:23.23%时间限制:1秒空间限制:32M。在一行上从小到大输出若干个整数,代表nn的质因子。

徐泗空的博客 528

基于java的汉服商城管理系统设计与实现的详细项目实例

本文介绍了一个基于Java的汉服商城管理系统设计与实现项目。该项目采用三层架构设计,包含用户模块、商品管理、订单处理、支付结算等核心功能,支持多角色权限控制和响应式前端界面。 系统创新点包括: 专业化的汉服商品管理,支持多规格属性组合 高并发订单处理机制,确保库存实时同步 个性化智能推荐算法提升用户体验 细粒度权限控制保障系统安全 项目采用SpringBoot+MyBatis技术栈,前端使用React框架实现跨设备兼容。数据库设计包含用户表、商品表、订单表等10个核心表,通过事务管理确保数据一致性。 系统解

优质创作者: 人工智能技术领域 对于有一定基础的 MATLAB和Python带具体需求都可以详谈 MATLAB和Python可以提供代码调试服务加油 谢谢 你的鼓励是我前行的动力 谢谢支持 加油 谢谢 804

【Java】 牛客网华为机试108题汇总

明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了N个1到1000之间的随机整数(N≤1000),明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了N个1到1000之间的随机整数(N≤1000),* 对于其中重复的数字,只保留一个,把其余相同的数去掉,不同的数对应着不同的学生的学号。对于其中重复的数字,只保留一个,把其余相同的数去掉,不同的数对应着不同的学生的学号。* 写出一个程序,接受一个十六进制的数,输出该数值的十进制表示。

张伟的专栏 2706

uniapp 记录运动轨迹 开发_智能手环穿戴设备APP开发解决方案

智能手环是一种穿戴式智能设备,是目前备受关注的科技产品。目前智能手环具有的功能有记录日常生活中的运动数据、移动轨迹,定位等,有些还可以进行睡眠质量的检测,并将这些数据传送至移动端如手机、平板等,可对数据进行分析,指导健康生活的作用。而智能手环开发方案就是将这些功能实现,将算法烧录到主控板上。智能手环都有哪些功能  1、记录运动数据  对于喜欢健身的用户来说,智能手环记录的运动数据功能...

weixin_39678493的博客 1764

【异常】Codybuddy Error Code: 14003 too many requests 限流报错问题排查与解决指南

14003报错本质为服务端限流拦截,并非账号封禁或程序致命故障,90%以上的场景可通过等待冷却+规范使用行为解决。通过本文的排查步骤,可快速恢复工具使用,同时规避后续重复触发该问题。

奶爸的编程之路,也就一周冷个三天 1254

牛客华为题库刷题笔记

笔记

qq_42762496的博客 721

Vue3 - 强力解决前端下载二进制流pdf文件、下载成功后打开空白问题解决,或者获取PDF文件流,将blob对象转换成下载链接打开后一片空白(无论是否使用pdf插件下载,还是原生方法下载都完美解决)

vue3前端下载二进制流pdf文件,下载成功,打开空白问题解决,js下载PDF文件流,打开空白问题,VUE3 h5中的文件流下载和指定的url下载总结(解决下载后的pdf打开空白情况)pdfjs打开文件流空白,解决pdf文件流,预览全是空白页,pdf文件流,下载正常,但是预览全是空白页,前端JS获取PDF文件流,将blob对象转换成下载链接打开后一篇空白的问题,前端文件流下载后文件空白,前端下载文件流PDF文件显示空白 或 无法打开,在线预览PDF文件打不开白屏怎么办,前端axios请求二进制数据流转换生成

🏆 前端领域优质创作者 4619

题目1137:浮点数加法 (错在哪?)

import java.io.IOException; import java.io.FileReader; import java.io.InputStreamReader; import java.io.BufferedReader; import java.util.Scanner; import java.math.BigDecimal; import java.lang.StringBu

多看多听多总结 1201

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

牛客网HJ6 质数因子Python3解法

题目介绍: 解题思路: 1.暴力破解,时间复杂度高 就是从2一直除到N-1,每次能整除,则把整除后的商重新赋值给N。但是执行的时间复杂度O(n),当质数比较大,如10007时,效率就太低了。 2.试除法 求一个数N的质数因子,有两种可能: ①N本身就是质数 ②存在N=a*b(a、b为质数),那么肯定有1≤a≤b≤N,那么a、b必然都是N的质数因子,即找到a就已知b()也是N的质数因子,这样可推知当a=b=时,就不用了再往后去找N的质数因子了。 相比暴力破解,这个方法的时间复杂度就..

双子叶mm的博客 1333

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

【java华为机试】HJ6 质数因子

描述 功能:输入一个正整数,按照从小到大的顺序输出它的所有质因子(重复的也要列举)(如180的质因子为2 2 3 3 5 ) 输入描述: 输入一个整数 输出描述: 按照从小到大的顺序输出它的所有质数的因子,以空格隔开。最后一个数后面也要有空格。 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.

一只小白 1087

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

【牛客网 - 华为机试 - HJ6 质数因子】

思路: 对于合数来说:质因数>=2且<=自身的平方根,因此遍历时,只需要遍历到自身平方根即可,之后用该合数除以遍历到的数,得到的数值继续重复操作。其中,每遍历一个数,就打印,并且用空格隔开; 对于质数来说,因子就是1和它本身。因为质数从2开始,所以对于这类数,只要>=2打印即可; step1:输入一个正整数; step2:从2到自身平方根开始遍历,当自身可以整除遍历到的数时,打印遍历到的数,并用空格隔开,同时将整除完的数字重复遍历,直至循环结束; step3:对于质数,只要&..

爱摸鱼的经济er的博客 583

使用java求任意数字的质数因子

题目描述 功能:输入一个正整数,按照从小到大的顺序输出它的所有质数的因子(如180的质数因子为22335) 最后一个数后面也要有空格 详细描述: 函数接口说明: publicStringgetResult(longulDataInput) 输入参数: longulDataInput:输入的正整数 返回值: String ...

weixin_30700977的博客 1434

Java - 华为机试训练 - 质数因子

时间限制:1秒空间限制:32768K 本题知识点: 排序  算法知识视频讲解 题目描述 功能:输入一个正整数,按照从小到大的顺序输出它的所有质数的因子(如180的质数因子为2 2 3 3 5 ) 最后一个数后面也要有空格 详细描述: 函数接口说明: public String getResult(long ulDataInput)

i逆天耗子 1115

华为机试(字符串间隔,进制转换,质数因子)Java

题目来源:牛客网 1.字符串分隔 题目描述 •连续输入字符串,请按长度为8拆分每个字符串后输出到新的字符串数组; •长度不是8整数倍的字符串请在后面补数字0,空字符串不处理。 输入描述: 连续输入字符串(输入2次,每个字符串长度小于100) 输出描述: 输出到长度为8的新字符串数组输入abc 123456789输出abc00000 12345678 900

ld851的博客 649

牛客网——华为机试(题6:质数因子)(Java)

题目描述: 功能:输入一个正整数,按照从小到大的顺序输出它的所有质数的因子(如180的质数因子为2 2 3 3 5 ) 最后一个数后面也要有空格 详细描述: 函数接口说明: public String getResult(long ulDataInput) 输入参数: long ulDataInput:输入的正整数 返回值: String 输入描述: 输入一个long型整数...

great978的博客 784

华为oj之质数因子

题目: 质数因子 热度指数:5143 时间限制:1秒 空间限制:32768K 本题知识点: 排序 题目描述 功能:输入一个正整数,按照从小到大的顺序输出它的所有质数的因子(如180的质数因子为2 2 3 3 5 ) 最后一个数后面也要有空格 详细描述: 函数接口说明: public String getResult(...

weixin_33720078的博客 470

华为oj 质数因子

#include #include #include using namespace std; bool isPrime(int n) { for(int j=2;j<=sqrt((double)n);j++) { if(n%j == 0) return false; } return true; } int main() { int k; cin>>k;

qz530308783的专栏 410

因子个数(Java)

牛客链接 因子个数 题目 一个正整数可以分解成一个或多个数组的积。例如36=223*3,即包含2和3两个因子。NowCoder最近在研究因子个数的分布规律,现在给出一系列正整数,他希望你开发一个程序输出每个正整数的因子个数。 输入描述 输入包括多组数据。 每组数据仅有一个整数n (2≤n≤100000)。 输出描述 对应每个整数,输出其因子个数,每个结果占一行。 解题思路 思路1 第一个想到的算法是从i = 2开始循环,用输入的数据num除以 i ,除数用set保存,如果没出现过,则进行count+

qq_45042271的博客 2110
上一篇: java数据结构与算法刷题-----LeetCode7:整数反转
下一篇: RabbitMQ实战知识详细笔记,消息丢失,重复消费等问题解决方案。
ydenergy_殷志鹏
博客等级 码龄7年 5887粉丝 543原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ydenergy_殷志鹏

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值