关闭

题目1207:质因数的个数

269人阅读 评论(0) 收藏 举报
题目1207:质因数的个数

时间限制:1 秒

内存限制:32 兆

特殊判题:

提交:7367

解决:2406

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

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

输出:

对于每组数据,输出N的质因数的个数。

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

注意:1不是N的质因数;若N为质数,N是N的质因数。

#include <iostream>
#include<stdio.h>
#include<string.h>
#include<algorithm>
#include<string>
using namespace std;
 
 
bool mark[100001];
int prime[100001];
int primeSize;
 
void init()//用素数筛选法筛选出2到100000内的所有素因数
{
    primeSize=0;
    for(int i=2; i<100000; i++)
    {
        if(mark[i]==true) continue;
        prime[primeSize++]=i;
        if(i>=1000) continue;
        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)//若测试完2到100000内所有素因数,n仍未被分解到1,则剩余的因数一定是n一个大于100000的素因数
        {
            ansPrime[ansSize]=n;//记录该大素因数
            ansNum[ansSize++]=1;//其幂指数只能为1
        }
        int ans=0;
        for(int i=0; i<ansSize; i++)
        {
            ans+=ansNum[i];//统计各个素因数的幂指数
        }
        printf("%d\n",ans);
    }
    return 0;
}
 
/**************************************************************
    Problem: 1207
    User: zhuoyuezai
    Language: C++
    Result: Accepted
    Time:10 ms
    Memory:2008 kb
****************************************************************/

 

0
0
查看评论

九度OJ 1207 质因数的个数 (筛素数,勉强AC)

1 秒 内存限制:32 兆 特殊判题:否 提交:4466 解决:1375 题目描述: 求正整数N(N>1)的质因数的个数。 相同的质因数需要重复计算。如120=2*2*2*3*5,共有5个质因数。 输入: 可能有多组测试数据,每组测试数据的输入是一个正整数N,(1 输出...
  • wdkirchhoff
  • wdkirchhoff
  • 2014-12-10 16:26
  • 2026

题目1207:质因数的个数

#include #include bool mark[100001]; int prime[100001]; int primesize; void init()   // 预处理求2到100000的素数  {     primesize=0;...
  • Wss0130
  • Wss0130
  • 2014-03-01 10:22
  • 422

九度OJ 题目1207:质因数的个数

题目描述: 求正整数N(N>1)的质因数的个数。 相同的质因数需要重复计算。如120=2*2*2*3*5,共有5个质因数。 输入: 可能有多组测试数据,每组测试数据的输入是一个正整数N,(1 输出: 对于每组数据,输出N的质因数的个数。 样例输入: 120 样例输出: 5...
  • lhyer
  • lhyer
  • 2015-08-21 20:51
  • 516

九度题目1207质因数的个数

#include int prime[100001]; bool mark[100001]; int primesize; int sushu(){      int i;     ...
  • yusen_zdn
  • yusen_zdn
  • 2016-03-18 17:05
  • 214

题目1207:质因数的个数 九度OJ

题目1207:质因数的个数 时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:9892 解决:3202 题目描述: 求正整数N(N>1)的质因数的个数。 相同的质因数需要重复计算。如120=2*2*2*3*5,共有5个质因数。 ...
  • qq_34447388
  • qq_34447388
  • 2017-04-24 14:05
  • 130

九度 题目1207:质因数的个数

九度 题目1207:质因数的个数
  • coding_sun
  • coding_sun
  • 2017-09-07 14:36
  • 99

54-题目1207:质因数的个数

http://ac.jobdu.com/problem.php?pid=1207 题目描述: 求正整数N(N>1)的质因数的个数。 相同的质因数需要重复计算。如120=2*2*2*3*5,共有5个质因数。 输入: 可能有多组测试数据,每组测试数据的输入是一个正整数...
  • u011392877
  • u011392877
  • 2016-03-09 18:22
  • 315

九度oj 题目1207:质因数的个数

链接 http://ac.jobdu.com/problem.php?pid=1207 题目描述: 求正整数N(N>1)的质因数的个数。 相同的质因数需要重复计算。如120=2*2*2*3*5,共有5个质因数。 输入: 可能有多组测试数据,每组测试数据的输入是一个正整数N,(1...
  • hitwlh
  • hitwlh
  • 2015-07-02 17:16
  • 671

九度题目1207:质因数的个数

题目描述: 求正整数N(N>1)的质因数的个数。 相同的质因数需要重复计算。如120=2*2*2*3*5,共有5个质因数。 输入: 可能有多组测试数据,每组测试数据的输入是一个正整数N,(1 输出: 对于每组数据,输出N的质因数的个数。 样例输入:...
  • fjx1173865548
  • fjx1173865548
  • 2015-09-08 16:35
  • 296

九度OJ题目1207:质因数的个数

题目1207:质因数的个数 时间限制:1 秒内存限制:32 兆特殊判题:否提交:7388解决:2415 题目描述: 求正整数N(N>1)的质因数的个数。 相同的质因数需要重复计算。如120=2*2*2*3*5,共有5个质因数。 输入: 可能有多组测试数据,每组测试数据的输入是一个正...
  • wxyfennie
  • wxyfennie
  • 2016-08-17 18:36
  • 592
    个人资料
    • 访问:70642次
    • 积分:1343
    • 等级:
    • 排名:千里之外
    • 原创:149篇
    • 转载:8篇
    • 译文:0篇
    • 评论:5条
    最新评论