质数因子(Python,华为机试)
目录
题目描述
解决思路
代码
代码走读
传送门
测试用例
1. 输入正整数
2. 输入负整数
题目描述
输入一个正整数,返回该整数的质数因子。质数因子从小到大排列在一行,以空格隔开每一个质数因子(最后一个数字后面也要包含空格)。
输入/输出描述
输入描述
输入一个正整数。例如:180
输出描述
输出正整数的质数因子,质数因子从小到大排序。例如:2 2 3 3 5
解决思路
合理的输入整数分两种场景:
1、输入的数字本身就是质数。那么输出结果只有该数字本身。
2、输入的数字是合数:
从2开始遍历,如果遍历到的数字是质数,且该数字是输入整数的因数,则该数字符合要求输出。否则继续遍历查询。找到质数因子后,整数除以质数因子,递归查找,直至本身不断的除以找到的质数因子变成质数结束递归。
代码
def find_factors(number):"""Print prime factors.:param number: <int> number:return: <None>"""is_prime = Truefor i in range(2, int(number ** 0.5 + 2)):if number % i == 0:is_prime = Falseprint(str(i), end=" ")find_factors(int(number / i))breakif is_prime:print(str(number), end=" ")returntry:number = int(input())if number <= 0:raise Exceptionfind_factors(number)
except Exception as e:exit()
代码走读
# 查找并打印质数因子函数
def find_factors(number):"""Print prime factors.:param number: <int> number:return: <None>"""# 初始化is_prime变量为True,表示是质数is_prime = True# 查找质数因子for i in range(2, int(number ** 0.5 + 2)):if number % i == 0:is_prime = Falseprint(str(i), end=" ")# 递归继续查找find_factors(int(number / i))break# 如果输入的数字本身就是质数,则直接输出(这也是递归出口)if is_prime:print(str(number), end=" ")returntry:# 接收输入的整数number = int(input())# 如果输入的整数不符合正整数要求,抛出异常if number <= 0:raise Exception # 调用自定义的find_factors函数,打印结果find_factors(number)
# 对于程序中抛出的任何异常,捕获后程序直接结束
except Exception as e:exit()
传送门
1. input()函数
Python input函数_TCatTime的博客-CSDN博客
2. int()函数
Python int函数_TCatTime的博客-CSDN博客_int函数python
3. range()函数
Python range函数_TCatTime的博客-CSDN博客
4. str()函数
Python str函数_TCatTime的博客-CSDN博客_python str函数
5. print()函数
Python print函数:将内容打印到标准输出_TCatTime的博客-CSDN博客
6. exit()函数
Python exit函数_TCatTime的博客-CSDN博客_python的exit函数
测试用例
1. 输入正整数
输入正整数230,输出结果2 5 23。结果正确。
230
2 5 23
2. 输入负整数
输入负整数-230,没有输出结果。运行结果正确。
-230Process finished with exit code 0
质数因子(Python,华为机试)相关推荐
- 牛客网–华为机试在线训练6:质数因子
牛客网–华为机试在线训练6:质数因子 题目描述 功能:输入一个正整数,按照从小到大的顺序输出它的所有质数的因子(如180的质数因子为2 2 3 3 5 ) 最后一个数后面也要有空格 详细描述: 函数接 ...
- 华为机试python编程题_牛客网华为机试题之Python解法
牛客网华为机试题之Python解法 第1题 字符串最后一个单词的长度 a = input().split(" ") print(len(a[-1])) 第2题 计算字符个数 a = ...
- 【华为机试 Python实现】华为机试题集合(已更新171篇)
文章目录 新手指引 数据结构基础 华为机试真题系列 牛客网华为机试系列 Python 八股文系列 <华为机试真题详解>专栏定价99.9 包含 <华为机试真题>的所有题目. 包含 ...
- 牛客网华为机试(python)
前言 牛客网华为机试(https://www.nowcoder.com/exam/oj/ta?tpId=37) 按难度分为入门,简单,中等,困难,较难五个等级 目录标题 前言 一,入门 二,简单 一, ...
- 【华为机试真题 Python实现】2022年4、5月高频机试题
文章目录 2022年4.5月高频机试题 机试必须要会的函数 输入输出处理 for 循环 通过下标访问元素 直接迭代访问元素 同时访问下标和元素 while 循环 字符ASSIC码转换 进制转换 绝对值 ...
- 【华为机试真题 Python实现 】高矮个子排队
文章目录 前言 题目描述 示例 1 示例 2 示例 3 参考代码 前言 <华为机试真题 Python实现>专栏含牛客网华为专栏.华为面经试题.华为OD机试真题. 如果您在准备华为的面试,期 ...
- 华为机试在线训练--牛客网(python)第四部分
华为机试在线训练–牛客网(python) 第四部分(31~40) 第三十一题:[中级]单词倒排 题目描述 对字符串中的所有单词进行倒排. 说明: 1.每个单词是以26个大写或小写英文字母构成: 2.非 ...
- (python)牛客网(华为机试四)——较难
本博客为博主解题的部分记录,由于均为自己写的,所以答案并非最优解,有很多地方可以优化. 其他题解合集: (python)牛客网(华为机试一)--入门 (python)牛客网(华为机试二)--简单 (p ...
- 【华为机试真题 Python实现】2022年4季度最新机试题
文章目录 2022年4季度最新机试题 机试必须要会的函数 输入输出处理 for 循环 通过下标访问元素 直接迭代访问元素 同时访问下标和元素 while 循环 字符ASSIC码转换 进制转换 绝对值计 ...
- 华为机试python需要需要当时编译通过吗_华为校招软开算法岗历年机试编程题77道C++代码详解(五)...
温馨提示:考虑到华为每年校招机试在牛客网进行,所以本文以及同系列其他八篇文章的所有代码均仅保证在牛客网华为机试页面100%accepted.其他编译器使用本代码可能会出现不通过的情况,请知晓. 41. ...
最新文章
- 全球及中国软件外包行业“十四五”展望发展建议及创新布局战略报告2021-2027年
- 「PKUSC2018」星际穿越 (70分做法)
- python遍历文件内容_Python四种逐行读取文件内容的方法
- linux下日志文件的查找(tail和grep)
- MFC 文档 视图 框架窗口间的关系 和消息传送规律
- SAL Annotations的介绍
- linux snap文件夹,在Linux下使用Snap安装Rambox的方法
- SSR端口冲突的解决法法
- Euraka的搭建和使用
- 开心网kaixin001状告kaixin,停用“开心网”名称,赔偿1000万元
- 笔记本计算机无法开机怎么办,笔记本开机没反应,详细教您笔记本电脑开不了机怎么处理...
- 干货!如何快速拥有自己的商城APP
- DOM 对象的方法和属性
- 晋中学院 计算机系在哪个校区,晋中学院有几个校区及校区地址
- JVM_01_类加载子系统
- 十六进制的加减乘除c语言,十六进制的乘除法怎么运算
- 计算机基础教程张福炎pdf,计算机基础教学大纲(理科).pdf
- mysql 循环插入数据脚本
- 自动生成12个月月份
- 【presto】presto编译报错整理(大全)