博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
题目1207:质因数的个数
阅读量:4361 次
发布时间:2019-06-07

本文共 1231 字,大约阅读时间需要 4 分钟。

题目1207:质因数的个数

时间限制:1 秒

内存限制:32 兆

特殊判题:

提交:1397

解决:326

题目描述:
求正整数N(N>1)的质因数的个数。
相同的质因数需要重复计算。如120=2*2*2*3*5,共有5个质因数。
输入:

可能有多组测试数据,每组测试数据的输入是一个正整数N,(1<N<10^9)。

算法:

只要筛选出sqrt(1000000000)前面的素数即可。

代码:

View Code
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;int n, a, cnt;int prime[41000];int hash[41100]={ 0};int visit[41100];void Get_Prime( ){ cnt = 0; int x = (int)sqrt(1000000000.0); int y = (int)sqrt( x * 1.0 ); for( int i = 2; i <= y; i++) { if( !hash[i] ) { for( int j = i + i; j <= 31630; j += i ) hash[j] = 1; } } for( int i = 2; i <= 31630; i++) if( !hash[i] ) prime[cnt++] = i; }void Get_Fac( int x){ int id = 0, ans = 0; while( x ) { while( x % prime[id] == 0 && x!= 1) x /= prime[id], ans++; id++; if( x == 1) break; if( id >= cnt ) { ans++; break; } } printf("%d\n",ans); } int main( ){ Get_Prime( ); while( scanf("%d",&n) != EOF) { memset(hash,0,sizeof(hash)); Get_Fac(n); } return 0; }

 

转载于:https://www.cnblogs.com/tangcong/archive/2012/08/21/2649628.html

你可能感兴趣的文章
《蹭课神器》项目总结
查看>>
HNOI2017
查看>>
winsock 收发广播包 【转】
查看>>
2018-2019-1 20165209 《信息安全系统设计基础》第1周学习总结
查看>>
android View Hierarchry for UI
查看>>
交叉排序
查看>>
关于读取mapper的两种方式
查看>>
WebRTC 中RTT实现方法
查看>>
CentOS7使用yum安装ceph rpm包
查看>>
About_AJAX
查看>>
About_Return
查看>>
10.24给TA的话
查看>>
数组_leetcode209
查看>>
日系插画学习笔记(三):光影与结构
查看>>
C语言——几道习题
查看>>
CentOS——自己安装网卡驱动
查看>>
工具系列 | VScode Remote 远程开发与调试(告别SSH)
查看>>
Django QuestSet API (官方文档)
查看>>
javascript的变量声明、数据类型
查看>>
2018 Multi-University Training Contest 10
查看>>