基础编程题之因数分解
文章目录
- 题目1
- 解题思路
- 代码
- 题目2
- 解题思路
- 代码
题目1
牛客
解题思路
首先对于求素数,因数分解这类的题目,搜索范围一般是[2,sqrt(a)]
因为数学中:假设a
合数,并且a == b * c
,其中b
、c
中必定有一个 ≤ sqrt(a)
,不可能出现b
、c
同时大于a
对于这一题,还有一点要注意的是,当我们把a
的所有2因数都分解出来后,2的倍数(4、6、8…)都不可能再分解出来,比如100分解出2 x 2后,无法再分出2的倍数,同样分解出所有3因数后,则无法再分出3的倍数…
因此我们可以:在[2, sqrt(a)]
区间从小到大逐渐试探的时候,碰到一个分解的因数时a,就一直分解a,直到不能再分解a,此时也不可能再分解出a的倍数。
代码
// write your code here cpp
#include <iostream>
#include <cmath>
#include <cstdio>
using namespace std;int main()
{int input;while(cin >> input){printf("%d = ",input);for(int i=2 ;i<=sqrt(input);i++){while((input % i == 0)){if(input/i==1)//最后一个数字,特殊输出{break;}printf("%d * ",i);input/=i;}}printf("%d\n",input);}return 0;
}
题目2
牛客
解题思路
这个题和上一题基本一致,只不过上一题要写出完整的表示形式,而这一题需要输出不重复的因子的个数,代码中只需要稍微修改一部分。先判断是否是因子,如果是使用while循环处理能被这个因子整除的情况
代码
#include <iostream>
#include <cmath>
#include <cstdio>
using namespace std;int main()
{int input;while(cin >> input){int number=0;for(int i=2 ;i<=sqrt(input);i++){if(input % i == 0)number++;while(input % i == 0)//就像36,不要有重复的因子input/=i;}if(input > 1)//如果不等于1,说明还有一个因子number++;cout<<number<<endl;}return 0;
}
基础编程题之因数分解相关推荐
- 判断三角形java代码_java基础编程题之异常处理
以下是刚开始学习java的基础编程题,每天持续更新java每个知识点的题目,持续练习,不断提高java基本功,培养编程能力.今天的练习的十八题是java的异常处理的使用. 1.检测年龄不能为负数和大于 ...
- 实体类 接口_Java 语言基础编程题 (二维数组, 五子棋游戏, 实体类和接口)
原文:Java 语言基础编程题 (二维数组, 五子棋游戏, 实体类和接口, 视频讲解) 这里分享三道编程题, 下面是我个人的视频讲解 二维数组, 五子棋游戏, 实体类和接口_哔哩哔哩 (゜-゜)つロ ...
- 华为机试题python版节选(基础编程题)
前言 自学python之后,可以借助这些企业招聘时的机考题目来锤炼一下实践能力.. 每道题含要点解析,是按照自己理解梳理的,多个答案的是结合自己的答案+网上的答案,不一定很严谨,请读者自行在编译器中调 ...
- PTA-然后是几点(基础编程题)
PTA-然后是几点(基础编程题) 有时候人们用四位数字表示一个时间,比如1106表示11点零6分.现在,你的程序要根据起始时间和流逝的时间计算出终止时间. 读入两个数字,第一个数字以这样的四位数字表示 ...
- C++基础编程题(27)输入一个数字,为其高,一个符号*,输出该符号组成的平行四边形形状
C++基础编程题(27)输入一个数字,为其高,一个符号*,输出该符号组成的平行四边形形状
- 基础编程题(1~5)
基础编程题(1~5) 01.斐波那契数列 1.1.程序分析 1.2.代码实现 02.判断素数(Prime number) 2.1.程序分析 2.2.代码实现 2.3.科普小课堂:素数 2.3.1.素数 ...
- c语言基础编程题文库,C语言基础编程题资料.doc
C语言基础编程题资料.doc |5-1 求幂之和 15 分本题要求编写程序,计算 sum21 22 23 cdots 2nsum2122232n.可以调用 pow 函数求幂.输入格式输入在一行中给出正 ...
- C语言基础编程题——喝水问题,译码问题
C语言基础编程题--喝水问题,译码问题 有这样一道智力题:"某商店规定:三个空汽水瓶可以换一瓶汽水.小张手上有十个空汽水瓶,她最多可以换多少瓶汽水喝?"答案是5瓶,方法如下:先用9 ...
- 有n个人围成一圈 顺序排号 java_java基础编程题有n个人围成一圈顺序排号
下面给大家带来的这道编程题可以算得上是一道非常基础的java编程题目,刚刚开始接触java编程的小伙伴一起来看看具体的题目以及解题方法吧. 下面是具体的题目,题目还是非常的简单的. 一.题目 有n个人 ...
最新文章
- JavaScript 函数
- RHEL 5基础篇—文件和目录的管理
- [云炬创业基础笔记] 第三章测试10~12
- 荣耀X8碎屏2020-05-14
- MONGODB 集群 配置及 客户端PHP 连接
- tcga癌症亚型获取_将亚型多态性与通用多态性相关联的危险
- html5本地存储论坛,Web Storage--HTML5本地存储
- Unity3D之NGUI基础6.1:按钮交互
- 图像数字水印技术研究及matlab实现,基于DFT的数字水印技术及MATLAB实现
- Android 最常用的设计模式五 安卓源码分析——建造者模式
- python的口算自动生成系统(GUI界面编程)
- Cisco Live 2016:CEO罗卓克谈英国脱欧、内部孵化以及向服务转型
- day17.什么是堆栈
- 计算机提示无法识别优盘,插入U盘显示无法识别怎么办
- 山科OJ:Problem C: Lemon
- 【Python】新华字典(bushi
- 维权的背后,暴雪在游戏市场的霸权是如何旁落的?
- js执行oracle函数吗,执行javascript函数
- python脚本计算STM32的bxCAN的波特率
- 画论87 陈撰《书画涉笔》
热门文章
- python globals() 动态函数调用_[Python] 动态函数调用(通过函数名)
- 大数据2019年的三大趋势你看了吗?
- ps如何修改图片大小尺寸_PS常用操作 | 图片的裁剪、拼接、尺寸调整... ...
- 用R在地图上绘制网络图的三种方法
- 存储过程没有执行完后没有释放锁_【大厂面试07期】说一说你对synchronized锁的理解?...
- 数字系统设计学习之QuartusII9的安装
- php我赢职场季枫_我赢职场 - 主页
- Vue第一部分(6):Vue的生命周期
- 【ES6(2015)】Proxy
- 基于SSM的员工管理系统设计(含源文件)