题目1207:质因数的个数
来源:互联网 发布:产品研发部 数据公司 编辑:程序博客网 时间:2024/05/16 01:17
#include<stdio.h>
#include<math.h>
bool mark[100001];
int prime[100001];
int primesize;
void init() // 预处理求2到100000的素数
{
primesize=0;
for(int i=2;i<=100000;i++) mark[i]=false;
for(int i=2;i<=100000;i++){
if(mark[i]==true) continue;
prime[primesize++]=i;
if(i>=1000) continue; // 2到100000的素数
for(int j=i*i;j<=100000;j+=i){
mark[j]=true;
}
}
}
int main()
{
init();
int n;
while(scanf("%d",&n)!=EOF){
int ansPrime[30]; // 按顺序保存分解出的素因数
int ansSize=0; // 分解出素因数的个数
int ansNum[30]; // 保存分解出的素因数对应的幂指数
for(int i=0;i<primesize;i++){
if(n%prime[i]==0){
ansPrime[ansSize]=prime[i];
ansNum[ansSize]=0; // 初始化幂指数为0
while(n%prime[i]==0){ // 求幂指数
ansNum[ansSize]++;
n/=prime[i];
}
ansSize++; // 素因数个数增加
if(n==1) break; // 若已被分解为1,则分解提前终止
}
}
if(n!=1) {
ansPrime[ansSize]=n;
ansNum[ansSize++]=1;
}
int ans=0;
for(int i=0;i<ansSize;i++) ans+=ansNum[i];// 统计各个素因数的幂指数
printf("%d\n",ans);
}
return 0;
}
#include<math.h>
bool mark[100001];
int prime[100001];
int primesize;
void init() // 预处理求2到100000的素数
{
primesize=0;
for(int i=2;i<=100000;i++) mark[i]=false;
for(int i=2;i<=100000;i++){
if(mark[i]==true) continue;
prime[primesize++]=i;
if(i>=1000) continue; // 2到100000的素数
for(int j=i*i;j<=100000;j+=i){
mark[j]=true;
}
}
}
int main()
{
init();
int n;
while(scanf("%d",&n)!=EOF){
int ansPrime[30]; // 按顺序保存分解出的素因数
int ansSize=0; // 分解出素因数的个数
int ansNum[30]; // 保存分解出的素因数对应的幂指数
for(int i=0;i<primesize;i++){
if(n%prime[i]==0){
ansPrime[ansSize]=prime[i];
ansNum[ansSize]=0; // 初始化幂指数为0
while(n%prime[i]==0){ // 求幂指数
ansNum[ansSize]++;
n/=prime[i];
}
ansSize++; // 素因数个数增加
if(n==1) break; // 若已被分解为1,则分解提前终止
}
}
if(n!=1) {
ansPrime[ansSize]=n;
ansNum[ansSize++]=1;
}
int ans=0;
for(int i=0;i<ansSize;i++) ans+=ansNum[i];// 统计各个素因数的幂指数
printf("%d\n",ans);
}
return 0;
}
0 0
- 题目1207:质因数的个数
- 题目1207:质因数的个数
- 题目1207:质因数的个数
- 题目1207:质因数的个数
- 题目1207:质因数的个数
- 九度题目1207:质因数的个数
- 54-题目1207:质因数的个数
- 九度题目1207质因数的个数
- 九度 题目1207:质因数的个数
- 题目54:质因数的个数
- 题目1137: 质因数的个数
- 九度oj 题目1207:质因数的个数
- 九度OJ 题目1207:质因数的个数
- 九度OJ题目1207:质因数的个数
- 【九度OJ】题目1207:质因数的个数 解题报告
- 九度OJ题目1207:质因数的个数
- 题目1207:质因数的个数 九度OJ
- 题目1207:质因数的个数(2007年清华大学计算机研究生机试真题)
- 字符串左旋
- 《JavaScript DOM编程艺术》学习笔记<一>
- 通配符与正则表达式区别(二)
- 案例217 播放本地MP3文件
- 使用Google帐号登录Android应用
- 题目1207:质因数的个数
- copy和mutablecopy
- unlocked a not-locked lock
- cvCvtColor的用法
- C语言条件编译及编译预处理阶段
- Jdom读取xml文件
- Bjontegaard metric :BDBR和BD-PSNR
- 算法竞赛入门经典 分金币
- document.forms用法