原题目:
Dr. Mob has just discovered a Deathly Bacteria. He named it RC-01. RC-01 has a very strange reproduction system. RC-01 lives exactly x days. Now RC-01 produces exactly p new deadly Bacteria where x = b的p次方 (where b, p are integers). More generally, x is a perfect pth power. Given the lifetime x of a mother RC-01 you are to determine the maximum number of new RC-01 which can be produced by the mother RC-01.

Input
Input starts with an integer T (≤ 50), denoting the number of test cases.

Each case starts with a line containing an integer x. You can assume that x will have magnitude at least 2 and be within the range of a 32 bit signed integer.

Output
For each case, print the case number and the largest integer p such that x is a perfect pth power.

Sample Input
3
17
1073741824
25

Sample Output
Case 1: 1
Case 2: 30
Case 3: 2

题意:求给出x的b的最大p次方(b,p未知整数)

输入:
第一行一个整数T
接下来T行,每行一个x。

思路:
求x的唯一质数因子,因为是求质数因子,所以先用素数筛,将质数筛选出来,然后对筛选出来的质因子进行求次方数。
最后,求x各质因子的最大公因数(gcd)即可。

AC代码:

#include<cstdio>
#include<iostream>
#include<cstring>
using namespace std;
const int N = 100010;
typedef long long ll;
int prime[N],ans=0;
bool ver[N];void Prime()
{memset(ver,true,sizeof(ver));ver[1]=false;for(int i=2;i<N;i++){if(ver[i]){prime[ans++]=i;for(int j=i;1LL*i*j<N;j++)ver[i*j]=false;}}
}int gcd(int a,int b)
{return a%b==0?b:gcd(b,a%b);
}int main()
{int t,p=0;ll n;Prime();cin>>t;while(t--){p++;cin>>n;int f=0;if(n<0){n=-n;f=1;}int x,k=0;for(int i=0;i<ans&&prime[i]*prime[i]<=n;i++){if(n%prime[i]==0){x=0;while(n%prime[i]==0){x++;n/=prime[i];}if(k==0)k=x;elsek=gcd(k,x);}}if(n>1)k=gcd(k,1);if(f==1){while(k%2==0)k=k/2;}printf("Case %d: %d\n",p,k);}return 0;
}

Mysterious Bacteria(唯一质因子解+素数筛)相关推荐

  1. Mysterious Bacteria(唯一分解定理)

    Mysterious Bacteria(唯一分解定理) Dr. Mob has just discovered a Deathly Bacteria. He named it RC-01. RC-01 ...

  2. Mysterious Bacteria 唯一分解定理+素数筛

    题目大意: 给你一个数x = b^p,求p的最大值 x = p1^x1*p2^x2*p3^x3*...*ps^xs 开始我以为是找x1.x2.... .xs中的最大值,后来发现想错了,x = b^p, ...

  3. 2007 - 半质数 --- 素数筛+2137 - 质因子2

    ** 2007 - 半质数 --- 素数筛 **来源:东方博宜oj oj.czos.cn*解法一:(线性筛) #include<bits/stdc++.h> using namespace ...

  4. 素数(质数),合数 ,偶数 , 奇数 ,约数(因数) ,因子 , 质因子 , 哥德巴赫猜想定义

    约数(因数):如果整数a除以整数b(b≠0) 除得的商正好是整数而没有余数,我们就说a能被b整除,或b能整除a.a称为b的倍数,b称为a的约数.例如4 的约数(因数) 有 1 , 2 , 4 : 因子 ...

  5. Min_25筛有关求解次小质因子

    #188. [UR #13]Sanrd 题意化简就是求次小质因子,这一步我们可以在Min_25筛的ans计算中得到, S(n, j)表示的是最小质因子大于等于primejprime_jprimej​的 ...

  6. 【算法竞赛模板】质因子、质数、约数、余数、快速幂(数论大全)

    常用数论的算法模板 一.质因子 二.质数 三.约数 ① 试除法求一个数所有约数 ② 求约数个数 ③ 求约数和 ④ 求最大公约数 <1> gcd辗转相除 <2> 扩展欧几里得 & ...

  7. 算术基本定理之统计质因子个数———以及因子的个数

    算术基本定理,又称为正整数的唯一分解定理,即:每个大于1的自然数均可写为质数的积,而且这些素因子按大小排列之后,写法仅有一种方式. 例如 90=2 * 3^2 * 5: 1 我们要做的就是找到90的所 ...

  8. PAT甲级1059 Prime Factors :[C++题解]分解质因子

    文章目录 题目分析 题目链接 题目分析 暴力求质因数 下面i就是质因子,s是质因子i的阶数. 暴力的时间复杂度O(n),会超时 void divide(int n){for(int i=2;i< ...

  9. java 素数欧拉筛选_[C++]欧拉素数筛的理解与实现

    在传统的素数筛法中,我们使用了对于每一个数n,在 1~(√n) 范围内进行取模检查,这样逐一判断的复杂度为n(√n). 但如果我们需要更快的筛法时怎么办? 于是著名的欧拉筛诞生了.它能将复杂度降为** ...

最新文章

  1. 谷歌提出新型卷积网络EfficientNet:推理速度提升5.1倍,参数减少88%(附论文代码)...
  2. 网络协议是什么?—Vecloud微云
  3. html 将两个标签绑在一起,基本标签2
  4. YUI事件体系之Y.CustomEvent
  5. Hibernate-03-Hibernate的检索方式
  6. Four-tuples 山东省赛F题
  7. OSI与TCP/IP各层的结构与功能及协议
  8. SQL在线格式化工具
  9. 如何学习plc编程?(核心秘诀分享)
  10. Python for S60(pys60)介绍
  11. PHP icbc工商银行开放平台聚合支付,二维码扫码支付API云收呗对接步骤,稳步发展
  12. Linux stress
  13. 流量+安全 平安WiFi卡位入口战略
  14. c语言字符串atoi函数,C++_C语言中一些将字符串转换为数字的函数小结,C语言atoi()函数:将字符串转换 - phpStudy...
  15. aosp_015.配置编译文件,删除自带app
  16. SpringSecurity系列——会话管理,CSRFday8-1(源于官网5.7.2版本)
  17. echarts 重新加载数据
  18. r语言rank降序_常见排序分析方法及R语言实现
  19. win10升级后蓝牙不见了,设备管理器里没有,多了个串行控制器里的未知USB设备?...
  20. SAP ECC 6.0 下载以及安装

热门文章

  1. 转型经验分享|年过30的传统汽车人,如何转型做自动驾驶
  2. pic16F877A音乐盒c语言,基于PIC16F877A单片机的混沌信号发生器的设计
  3. spacedesk安装失败2503/2502错误
  4. python 证书-python+证书
  5. 【小程序开发之文章详情页面的设计】文章详情页面如何布局
  6. ETC收费交易流程规范
  7. 计算机工程应用是什么期刊,计算机工程类期刊汇总
  8. 云计算ACP实验实操心得
  9. 卡尔曼(Kalman)滤波(四)--深入浅出Kalman滤波算法
  10. PV操作经典例题——哲学家进餐问题