http://vjudge.net/contest/140673#problem/H

求某个数字(最大到10^9,可为负值)写成完全p次方数的指数p是多少

分析: 先进行唯一分解,之后p整除各个素因子的指数,即求一组数的最大公约数.

                                                            //*  _________________________________________________________________________________

                                                                 #include <iostream>
#include <cstdio>
#include <string>
#include <algorithm>
#include <cmath>
#include <vector>
#include <map>
using namespace std;
#define mem(A, X) memset(A, X, sizeof A)
#define pb(x) push_back(x)
#define foreach(e,x) for(__typeof(x.begin()) e=x.begin();e!=x.end();++e)
#define REP(i,l,u) for(int (i)=(int)(l);(i)<=(int)(u);++(i))
#define rep(i,l,u) for(int (i)=(int)(l);(i)>=(int)(u);--(i))
typedef long long LL;
typedef pair<long,long> pll; const int mod=1e9+;
const int maxn=1e5+; LL T; void prime_resolve(LL mm,vector <LL> & mf,map<LL,LL> &fp)//mf m_factor, fp factor_power put all the 素因子(即素数)2 ... of m to the factor,且在factor按照从小到大存储.
{
mf.clear();
for(long long i=;i*i<=mm;i++)
{
if(mm%i==)
{
mf.push_back(i);
while(mm%i==) //除干净某个因子.
{
mm/=i;
fp[i]++;
}
}
}
if(mm!=)
{
mf.push_back(mm); //如果m 是素数 放进去
fp[mm]++;
}
} LL gcd(const LL &a,const LL &b)
{ return b == ? a : gcd(b, a % b); }
int main()
{
freopen("in.txt","r",stdin);
while(scanf("%lld",&T)!=EOF&&T)
{ vector<LL> mf;
map<LL,LL> fp;
int flag=;
if(T<)
{
flag=;
T=-T;
}
prime_resolve(T,mf,fp); vector<LL> v;
/*foreach(e,mp)
{
v.pb(it->second);
}*/
map<LL,LL> ::iterator it;
for(it=fp.begin();it!=fp.end();it++)
v.pb(it->second); LL t=v[];
REP(i,,v.size()-)
{
t=gcd(t,v[i]);
}
if(flag)
while(t%==)
{
t=t/;
}
printf("%llu\n",t);
}
return ;
}

Implement Code

debug: 素数分解时int超出导致错误了,更改为LL.

uva 10622的更多相关文章

  1. UVA 10622 - Perfect P-th Powers(数论)

    UVA 10622 - Perfect P-th Powers 题目链接 题意:求n转化为b^p最大的p值 思路:对n分解质因子,然后取全部质因子个数的gcd就是答案,可是这题有个坑啊.就是输入的能够 ...

  2. UVa 10622 (gcd 分解质因数) Perfect P-th Powers

    题意: 对于32位有符号整数x,将其写成x = bp的形式,求p可能的最大值. 分析: 将x分解质因数,然后求所有指数的gcd即可. 对于负数还要再处理一下,负数求得的p必须是奇数才行. #inclu ...

  3. UVA 10622 Perfect P-th Powers

    https://vjudge.net/problem/UVA-10622 将n分解质因数,指数的gcd就是答案 如果n是负数,将答案除2至奇数 原理:(a*b)^p=a^p*b^p #include& ...

  4. 紫书 习题 10-8 UVa 10622(gcd)

    把这个数质因数分解然后求因子个数的gcd就ok了. 一些细节 (1)这道题的质因数不需要存下来,每一次做完取一次gcd就ok了 (2)判断奇偶用ans & 1的时候要加括号, 位运算要注意括号 ...

  5. uva 1354 Mobile Computing ——yhx

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAABGcAAANuCAYAAAC7f2QuAAAgAElEQVR4nOy9XUhjWbo3vu72RRgkF5

  6. UVA 10564 Paths through the Hourglass[DP 打印]

    UVA - 10564 Paths through the Hourglass 题意: 要求从第一层走到最下面一层,只能往左下或右下走 问有多少条路径之和刚好等于S? 如果有的话,输出字典序最小的路径 ...

  7. UVA 11404 Palindromic Subsequence[DP LCS 打印]

    UVA - 11404 Palindromic Subsequence 题意:一个字符串,删去0个或多个字符,输出字典序最小且最长的回文字符串 不要求路径区间DP都可以做 然而要字典序最小 倒过来求L ...

  8. UVA&&POJ离散概率与数学期望入门练习[4]

    POJ3869 Headshot 题意:给出左轮手枪的子弹序列,打了一枪没子弹,要使下一枪也没子弹概率最大应该rotate还是shoot 条件概率,|00|/(|00|+|01|)和|0|/n谁大的问 ...

  9. UVA计数方法练习[3]

    UVA - 11538 Chess Queen 题意:n*m放置两个互相攻击的后的方案数 分开讨论行 列 两条对角线 一个求和式 可以化简后计算 // // main.cpp // uva11538 ...

随机推荐

  1. 《BI那点儿事》数据流转换——聚合

    聚合转换可以像T-SQL中的函数GROUP BY, Average, Minimum, Maximum, 和 Count一样对数据进行聚合运算.在图中可以看到数据以SampleID分组,对TotalS ...

  2. equals

    package abstractClasses; import java.time.LocalDate; /** * Created by xkfx on 2016/12/20. */ public ...

  3. AVKit & MediaPlayer简写

    @import AVKit; @import AVFoundation; NSString *address = [[NSBundle mainBundle]pathForResource:@&quo ...

  4. AngularJS事件绑定的使用详解

    本文和大家分享的主要是AngularJS中事件绑定相关知识点,希望通过本文的分享,对大家学习和使用AngularJS有所帮助. 1.绑定事件:表达式.事件方法名: 2.绑定点击事件实例:显示.隐藏页面 ...

  5. oracle连接本地数据库

    连接方式: 通过SQL Developer进行连接: 通过sql plus 进行连接: SQL Developer进行连接1.安装Oracle 11g会自带一个叫做SQL Developer的工具,它 ...

  6. centos 安装 mongdb

    1.安装MongoDB(安装到/usr/local) wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-amazon-3.2.4.t ...

  7. linux下mysql函数的详细案列

    MYSQL * STDCALL mysql_real_connect(MYSQL *mysql, const char *host, const char *user, const char *pas ...

  8. Yii2框架安装(windows)

    -->安装PHP环境Wamp集成环境,XAMMP等.-->安装Composerhttp://pan.baidu.com/s/1i3fejjvPS:安装过程中的有一个手动操作项选择php.e ...

  9. Redis-收藏文章

    http://www.cnblogs.com/capqueen/p/HowToUseRedis.html  Redis到底该如何利用? http://www.cnblogs.com/yangecnu/ ...

  10. HTC A510C电信手机刷机过程

    HTC A510C电信手机刷机过程记录 Writed by Peter Hu(2014.6.7) ON WIN7_64 刷机需要的步骤: 1)  将S-ON加密保护式去掉,改成S-OFF模式,这样才能 ...