3164 质因数分解

3164 质因数分解

时间限制: 1 s

空间限制: 256000 KB

题目等级 : 黄金 Gold

题解

查看运行结果

题目描述 Description

(多数据)给出t个数,求出它的质因子个数。

数据没坑,难度降低。

输入描述 Input Description

第一行 t

之后t行 数据

输出描述 Output Description

t行 分解后结果(质因子个数)

样例输入 Sample Input

2

11

6

样例输出 Sample Output

1

2

数据范围及提示 Data Size & Hint

(样例解释)11自己本身是一个质数,所以计入其中。

顺便提示:t<=100000。每个数小于long long unsigned 呵呵

分类标签 Tags 点此展开

枚举 编程能力题

第一次,直接上唯一分解定理,结果WA+TLE ??

WA代码:

#include<cstdio>
#include<iostream>
#include<cmath>
#include<vector>
using namespace std;
#define ll unsigned long long
#define pir pair<ll,ll>
vector<pir> f;
inline const ll read(){
    register ll x=0;
    register char ch=getchar();
    while(ch<‘0‘||ch>‘9‘) ch=getchar();
    while(ch>=‘0‘&&ch<=‘9‘) x=x*10+ch-‘0‘,ch=getchar();
    return x;
}
void deal(ll x){
    f.clear();
    ll m=floor(sqrt(x)+0.5);
    for(ll i=2;i<=m;i++){
        if(x%i) continue;
        ll q=0;
        while(x%i==0) q++,x/=i;
        f.push_back(make_pair(i,q));
    }
    if(x>1) f.push_back(make_pair(x,1));
    printf("%d\n",f.size());
}
int main(){
    ll T,n;
    T=read();
    while(T--) n=read(),deal(n);
    return 0;
}

暴力过掉

AC代码:

#include<iostream>
using namespace std;
int main(){
    ios::sync_with_stdio(false);
    int T;long long n;
    cin>>T;
    while(T--){
        cin>>n;
        int tot=0;
        for(int i=2;i<=n;i++){
            if(n==1) break;
            if(n%i==0){
                do{
                    n/=i;
                    tot++;
                }while(n%i==0);
            }
        }
        cout<<tot<<endl;
    }
    return 0;
}
时间: 2024-10-13 17:45:17

3164 质因数分解的相关文章

codevs 3164 质因数分解

3164 质因数分解 #include<iostream> #include<cstdio> #include<cstring> #include<queue> #include<stack> #include<cmath> using namespace std; int T; int main() { scanf("%d",&T); for(int i=1;i<=T;i++){ long long

CODE[VS] 3164 质因数分解

题目描述 Description (多数据)给出t个数,求出它的质因子个数. 数据没坑,难度降低. 输入描述 Input Description 第一行 t 之后t行 数据 输出描述 Output Description t行 分解后结果(质因子个数) 样例输入 Sample Input 2 11 6 样例输出 Sample Output 1 2 数据范围及提示 Data Size & Hint (样例解释)11自己本身是一个质数,所以计入其中. 顺便提示:t<=100000.每个数小于lo

【BZOJ2227】【ZJOI2011】看电影 [组合数学][质因数分解]

看电影 Time Limit: 10 Sec  Memory Limit: 259 MB[Submit][Status][Discuss] Description 到了难得的假期,小白班上组织大家去看电影.但由于假期里看电影的人太多,很难做到让全班看上同一场电影,最后大家在一个偏僻的小胡同里找到了一家电影院.但这家电影院分配座位的方式很特殊,具体方式如下: 1. 电影院的座位共有K个,并被标号为1…K,每个人买完票后会被随机指定一个座位,具体来说是从1…K中等可能的随机选取一个正整数,设其为L.

Codevs 1313 质因数分解

1313 质因数分解 题目描述 Description 已知正整数 n是两个不同的质数的乘积,试求出较大的那个质数 . 输入描述 Input Description 输入只有一行,包含一个正整数 n. 输出描述 Output Description 输出只有一行,包含一个正整数p,即较大的那个质数. 样例输入 Sample Input 21 样例输出 Sample Output 7 #include<iostream> #include<cstdio> #include<cm

HDU 3988 n!质因数分解

Harry Potter and the Hide Story Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 2324    Accepted Submission(s): 569 Problem Description iSea is tired of writing the story of Harry Potter, so, l

HDU 1695 GCD 欧拉函数+容斥原理+质因数分解

链接:http://acm.hdu.edu.cn/showproblem.php?pid=1695 题意:在[a,b]中的x,在[c,d]中的y,求x与y的最大公约数为k的组合有多少.(a=1, a <= b <= 100000, c=1, c <= d <= 100000, 0 <= k <= 100000) 思路:因为x与y的最大公约数为k,所以xx=x/k与yy=y/k一定互质.要从a/k和b/k之中选择互质的数,枚举1~b/k,当选择的yy小于等于a/k时,可以

求n!质因数分解之后素数a的个数

n!质因数分解后P的个数=n/p+n/(p*p)+n/(p*p*p)+......直到n<p*p*p*...*p //主要代码,就这么点东西,数学真是厉害啊!幸亏我早早的就退了数学2333 do { n/=m; w+=n; }while(n);

莫比乌斯函数-质因数分解

1240 莫比乌斯函数 基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题 莫比乌斯函数,由德国数学家和天文学家莫比乌斯提出.梅滕斯(Mertens)首先使用μ(n)(miu(n))作为莫比乌斯函数的记号.(据说,高斯(Gauss)比莫比乌斯早三十年就曾考虑过这个函数). 具体定义如下: 如果一个数包含平方因子,那么miu(n) = 0.例如:miu(4), miu(12), miu(18) = 0. 如果一个数不包含平方因子,并且有k个不同的质因子,那么miu(n)

质因数分解(0)&lt;P2012_1&gt;

质因数分解 (prime.cpp/c/pas) [问题描述] 已知正整数n是两个不同的质数的乘积,试求出较大的那个质数. [输入] 输入文件名为prime.in. 输入只有一行,包含一个正整数n. [输出] 输出文件名为prime.out. 输出只有一行,包含一个正整数p,即较大的那个质数. [数据范围] 对于60%的数据,6 ≤ n ≤ 1000. 对于100%的数据,6 ≤ n ≤ 2*109.