C++[编程题]分解因数

【思路】:

这道题给出一个数a,需要分解因式。一个数的因式分解范围是从[2,sqrt(a)],从2开始到a的平方根范围,这些都是a的因子。

首先我们需要判断a这个整数从2开始,是否可以整除范围中的数,如果整出了,说明范围中的数就是其中一个因子。因为整除因子从除1最小数开始遍历因字数,所以需要将a这个数缩小范围,当a为12的时候,12最开始整除2,如果a这个数能够整除2,那么将a的值缩小a/=2,变成6,使得6再从2开始整除,整出到最后剩下一个质数3,那么会跳出for循环的条件,存在质数的情况,我们单独将它处理。这些因子我们可以存放在vector中保存。如果这个数大于1,那么说明它是质数,将它push_back到vector中。

最后要注意的是,牛客给出的测试用例,最后输出需要注意格式,有空格,这样才能通过测试。

// write your code here 
#include <iostream>
#include <vector>
using namespace std;
//分解因子
void factorSub(int a,vector<int>& factor)/
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值