码迷,mamicode.com
首页 > 其他好文 > 详细

uva10780(分解质因数)

时间:2014-08-29 21:21:28      阅读:495      评论:0      收藏:0      [点我收藏+]

标签:style   blog   color   os   io   for   div   log   sp   

可以直接用高精度来暴力求。

也可以不用高精度:

把m分解质因数,记录每个因数和它的次数。然后计算每个因数在n的阶乘里出现了多少次,再把这个次数除以它在m中的次数,就是可能的k值。取最小的k。

#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<cmath>
#include<map>
#include<set>
#include<vector>
#include<algorithm>
#include<stack>
#include<queue>
using namespace std;
#define INF 1000000000
#define eps 1e-8
#define pii pair<int,int>
#define LL long long int
int m,n,k,T;
int prime[5005],vis[5005];
void getprime()
{
    int num=0;
    for(int i=2;i<5000;i++)
    {
        if(vis[i]==0) prime[num++]=i;
        for(int j=i*i;j<5000;j+=i)
        {
            if(j%i==0) vis[j]=1;
        }
    }
}
int main()
{
    //freopen("in6.txt","r",stdin);
    //freopen("out.txt","w",stdout);
    getprime();
    scanf("%d",&T);
    for(int cas=1;cas<=T;cas++)
    {
        scanf("%d%d",&m,&n);
        k=INF;
        vector<pii>zhi;
        for(int i=0;prime[i]<=m;i++)
        {
            int num=0;
            while(m%prime[i]==0)
            {
                num++;
                m/=prime[i];
            }
            if(num)
            zhi.push_back(make_pair(prime[i],num));
        }
        for(unsigned int i=0;i<zhi.size();i++)
        {
            int t=zhi[i].first,num=0;
            for(int j=n;j>=1;j--)
            {
                int jj=j;
                while(jj%t==0)
                {
                    num++;
                    jj/=t;
                }
            }
            //cout<<‘k‘<<num<<endl;
            k=min(k,num/(zhi[i].second));
        }
        printf("Case %d:\n",cas);
        if(k)
        printf("%d\n",k);
        else
            printf("Impossible to divide\n");
    }
    //fclose(stdin);
    //fclose(stdout);
    return 0;
}

 

uva10780(分解质因数)

标签:style   blog   color   os   io   for   div   log   sp   

原文地址:http://www.cnblogs.com/zywscq/p/3945724.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!