Perfect Pth Powers pku-1730(筛+合数分解)
题意:x可以表示为bp, 求这个p的最大值,比如 25=52, 64=26, 然后输入x 输出 p
就是一个质因子分解、算法。(表示数据上卡了2个小时。)
合数质因子分解模板。
int num[];
int ind[];
int cnt=; for(int i=;n!=;++i)
{
if(n%i==)
{
num[cnt]=i; while(n%i==){ind[cnt]++;n/=i;} cnt++; }
if(i>)break;
}
if(n>){num[cnt]=n; ind[cnt++]=;}
两种方法:
方法一:时间最坏的时间复杂度是(大概10^8*n)就是这种方法,数据卡了很久,如果数据再给狠一点肯定不过,应为10^8在每一次都是一次。我估计数据有一个非常大素数,和比这个素数稍微少一些的数据,
当你选择if(i>10000)break; 这个判断条件时就有诟病, 不过还是过了
#include<cstdio> int gcd(int a, int b){ return b == 0 ? a : gcd(b, a%b); }
int main()
{
//int k=Prime();
int n;
while (scanf("%d", &n), n)
{
int cnt; bool flag = ;
int ans; bool first = ;
if (n < ){ flag = ; n = -n; }
for (int i = ; n!=; ++i)
{
if (n%i == )
{
cnt = ;
while (n%i == ){ n /= i; ++cnt; }
if (!first){ ans = cnt; first = ; }
else ans = gcd(ans, cnt);
}
if (i>)break;
}
if (n>)ans = ;
if (flag)while (ans % == )ans /= ;
printf("%d\n", ans);
}
}
方法二:欧拉筛+合数分解
时间复杂度:10^6+n
#include<cstdio>
const int N = 1e6;
int prime[N];
bool vis[N];
bool is_prime[N];
int Prime()
{
int cnt = ;
for (int i = ; i <= N; ++i)
{
if (!vis[i])
{
prime[cnt++] = i;
is_prime[i] = ;
}
for (int j = ; j < cnt&&i*prime[j] <= N; ++j)
{
vis[i*prime[j]] = ;
if (i%prime[j] == )break;
}
}
return cnt;
} int gcd(int a, int b){ return b == ? a : gcd(b, a%b); } int main()
{
int k=Prime();
int n;
while (scanf("%d", &n), n)
{
int cnt; bool flag = ;
int ans; bool first = ;
if (n < ){ flag = ; n = -n; }
for (int i = ; i<k; ++i)
{
if (n%prime[i] == )
{
cnt = ;
while (n%prime[i] == ){ n /= prime[i]; ++cnt; }
if (!first){ ans = cnt; first = ; }
else ans = gcd(ans, cnt);
}
}
if (n>)ans = ;
if (flag)while (ans % == )ans /= ;
printf("%d\n", ans);
}
}
Perfect Pth Powers pku-1730(筛+合数分解)的更多相关文章
- UVA 10622 - Perfect P-th Powers(数论)
UVA 10622 - Perfect P-th Powers 题目链接 题意:求n转化为b^p最大的p值 思路:对n分解质因子,然后取全部质因子个数的gcd就是答案,可是这题有个坑啊.就是输入的能够 ...
- Perfect Pth Powers poj1730
Perfect Pth Powers Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 16383 Accepted: 37 ...
- POJ 1730 Perfect Pth Powers(暴力枚举)
题目链接: https://cn.vjudge.net/problem/POJ-1730 题目描述: We say that x is a perfect square if, for some in ...
- [暑假集训--数论]poj1730 Perfect Pth Powers
We say that x is a perfect square if, for some integer b, x = b 2. Similarly, x is a perfect cube if ...
- Kattis之旅——Perfect Pth Powers
We say that x is a perfect square if, for some integer b, x = b2. Similarly, x is a perfect cube if, ...
- poj 1730 Perfect Pth Powers
这个有2种方法. 一种是通过枚举p的值(p的范围是从1-32),这样不会超时,再就是注意下精度用1e-8就可以了,还有要注意负数的处理…… #include<iostream> #incl ...
- UVa 10622 (gcd 分解质因数) Perfect P-th Powers
题意: 对于32位有符号整数x,将其写成x = bp的形式,求p可能的最大值. 分析: 将x分解质因数,然后求所有指数的gcd即可. 对于负数还要再处理一下,负数求得的p必须是奇数才行. #inclu ...
- POJ 1730 Perfect Pth Powers(唯一分解定理)
http://poj.org/problem?id=1730 题意:给出一个n,a=b^p,求出最大p值. 思路: 首先利用唯一分解定理,把n写成若干个素数相乘的形势.接下来对于每个指数求最大公约数, ...
- UVA 10622 Perfect P-th Powers
https://vjudge.net/problem/UVA-10622 将n分解质因数,指数的gcd就是答案 如果n是负数,将答案除2至奇数 原理:(a*b)^p=a^p*b^p #include& ...
随机推荐
- [转]Angular4 引用 material dialog时自定义对话框/deep/.mat-dialog-container
本文转自:https://blog.csdn.net/qq_24078843/article/details/78560556 版权声明:本文为博主原创文章,未经博主允许不得转载. https://b ...
- APiCloud学习
端API调用 核心模块在 window.api 对象下,默认提供该模块,不需要单独引用. 扩展模块在相应的模块对象下(例如:文件系统模块在fs对象下),需要require引入(var fs = api ...
- [javaEE] Servlet的手动配置
一.Servlet sun提供的一种动态web资源开发技术,本质上就是一段java小程序,可以将Sevlet加入到Servlet容器中 *Servlet容器 -- 能够运行Servlet的环境就叫做S ...
- (白话理解)CAS机制
(白话理解)CAS机制 通过一段对话我们来了解cas用意 示例程序:启动两个线程,每个线程中让静态变量count循环累加100次. 最终输出的count结果是什么呢?一定会是200吗? 加了同步锁之后 ...
- 通过AccessKey调用阿里云CDN接口刷新CDN资源案例
通过AccessKey远程调用阿里云CDN接口,快速实现自动化集成部署. CdnService.java package com.nfky.cdn; import com.aliyuncs.Defau ...
- 14-补充内容:MySQl创建用户和授权
[转]14-补充内容:MySQl创建用户和授权 权限管理 我们知道我们的最高权限管理者是root用户,它拥有着最高的权限操作.包括select.update.delete.update.grant等操 ...
- 微信小程序实现验证码倒计时效果
效果图 wxml <input class='input-pwd' placeholder="新密码" placeholder-style='color: #000' pas ...
- 正则与python的re模块
一.正则表达式的语法 正则表达式使用反斜杠字符('\')来表示特殊的形式或者来允许使用特殊的字符而不要启用它们特殊的含义.这与字符串字面值中相同目的的相同字符的用法冲突:例如,要匹配一个反斜线字面值, ...
- JSP内置对象——Exception对象
举个实例说明下: 新建一个“exception_test.jsp”: 对应的exception.jsp页面: 运行“exception_test.jsp”后: 虽然执行的是“exception_tes ...
- Linux 学习笔记之超详细基础linux命令 Part 5
Linux学习笔记之超详细基础linux命令 by:授客 QQ:1033553122 ---------------------------------接Part 4----------------- ...