当前位置: 首页 > news >正文

ACWing 3380. 质因数的个数

求正整数 N(N>1)的质因数的个数。

相同的质因数需要重复计算。

如 120=2×2×2×3×5,共有 5 个质因数。

输入格式

输入可能包含多组测试数据。

每组数据占一行,包含一个正整数 N。

输出格式

对于每组输入,输出一行结果表示 N 的质因数的个数。

数据范围

1<N<10^9
每个输入最多包含 100 组测试数据。

输入样例:
120
输出样例:
5

暴力解法

#include<iostream>
#include<math.h>

using namespace std;


int main()
{ int n=0;
while(cin>>n)
{ int count=0;
for(int i=2;i<=n;i++)
{
if(n%i==0)//i是最小的质因数
{
count++;
n=n/i;
i=1;
}

}
cout<<count<<endl;
}
}
但是在输入数据过大时会超时。如果想优化,只需要计算到i<=sqrt(n)即可。但是如果这样则需要额外进行一次判定,即当i=n本身时,for循环中的判定是判定不到的

如果根号n以内的数都不再存在n的质因数,那就只剩n本身能作为n的质因数了

所以我们无需经历从根号n到n的这一段循环,只需在i大于等于根号n以后单独进行一次判定

如果n>1 (n=1说明n已经被分解完毕) 则count++;

int main()
{ int n=0;
while(cin>>n)
{ int count=0;
for(int i=2;i<=sqrt(n);i++)
{
if(n%i==0)//i是最小的质因数
{
count++;
n=n/i;
i=1;
}

}if(n>1) count++;
cout<<count<<endl;
}
}

除此之外

for(int i=2;i<=n;i++)
{
if(n%i==0)//i是最小的质因数
{
count++;
n=n/i;
i=1;
}

}

每次查到n的最小质因数i以后,都需要重新从i=2开始查,在if结束时额外设置一个i=1看起来太蠢了

可以直接将if改为while,如果当前的数还能被i整除,就继续除以i,如果当前的数无法再被i整除,那以后这个数也不可能再被i整除,使用while直接将n的所有为i的质因数分出来后再进入下一个。

for(int i=2;i<=n;i++)
{
while(n%i==0)//i是最小的质因数
{
count++;
n=n/i;
}

}

http://www.jsqmd.com/news/478036/

相关文章:

  • 大模型工具调用实战:为什么我放弃了System Message传参改用tools参数?
  • OFA视觉问答模型实战教程:Pillow+requests+ModelScope协同调用
  • 法奥程序Modbus标定
  • 优惠券系统避坑指南:从美团实践中学到的5个关键设计原则
  • 立创EDA开源项目:ALL IN ONE全统一超高速HUB硬件设计与实现全解析
  • 立创开源Type-C超声波切割刀DIY全解析:从STC8H驱动到GU-18脉冲变压器设计
  • HY-Motion 1.0应用实战:快速生成游戏角色动作,提升开发效率
  • Hugging Face国内镜像加速实战:5分钟搞定模型下载慢的问题
  • 移植numworks图形计算器:7.移植LCD驱动——添加到numworks中
  • IMYAI视频创作系统部署实战:海外服务器配置与8大AI模型接入避坑指南
  • ollama部署本地大模型|embeddinggemma-300m在金融研报相似度分析应用
  • 成为管理者后,必须持续塑造更强的自己
  • 基于 51 单片机的空气浓度检测系统仿真:打造身边的空气卫士
  • ESP8684-WROOM-04C射频特性深度解析与工程落地指南
  • Linux网络驱动开发:PHY状态机与链路检测机制详解(附实战代码分析)
  • 进程资源限制与性能优化实践
  • 【生产实践】基于Docker Compose的StarRocks高可用集群部署与调优指南
  • Spring Boot 3.5.x 实战:SpringDoc 2 与 Swagger3 的深度集成与配置优化
  • 次元画室教程:锁定“风格密码”,批量产出AE可用素材(附案例)
  • 微前端架构实战:从原理到框架选型
  • C语言快速入门10-结构体
  • Cockpit实战指南:如何通过Web界面高效管理Linux服务器集群
  • 【国家级等保2.0强制要求】:MCP 2.0消息完整性校验必须满足的4项密码学硬指标(附国密SM4-GMAC审计清单)
  • Open3DSG复现实战:从数据裁剪到模型调试的完整避坑指南
  • Nunchaku FLUX.1-dev多场景落地:政府宣传图/党建素材/公益广告生成
  • 妈妈级教程:Python 全栈企业实战体系
  • 【硬核预测】AI连Verilog都能写了,FPGA工程师的铁饭碗还能端多久?
  • RK3588嵌入式Linux开发环境搭建避坑指南:从SDK解压到repo同步全流程
  • GAMES101作业7-路径追踪核心算法与性能优化全解析
  • UNIT-00:Berserk Interface 在网络安全领域的应用:威胁情报分析与代码审计