博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
UVA 10622 - Perfect P-th Powers(数论)
阅读量:7232 次
发布时间:2019-06-29

本文共 867 字,大约阅读时间需要 2 分钟。

UVA 10622 - Perfect P-th Powers

题意:求n转化为b^p最大的p值

思路:对n分解质因子,然后取全部质因子个数的gcd就是答案,可是这题有个坑啊。就是输入的能够是负数,负数的情况比較特殊,p仅仅能为奇数。这时候是要把答案不断除2除到为奇数就可以。

代码:

#include 
#include
#include
long long n;int prime[333333], vis[333333], m = 0;int gcd(int a, int b) { if (b == 0) return a; return gcd(b, a % b);}int solve() { long long nn = n; if (n < 0) n = -n; int ans = 0; for (int i = 0; i < m && prime[i] <= n; i++) { int count = 0; while (n % prime[i] == 0) { count++; n /= prime[i]; } ans = gcd(ans, count); } if (ans == 0) ans = 1; if (nn < 0) { while (ans % 2 == 0) { ans /= 2; } } return ans;}int main() { for (int i = 2; i < 333333; i++) { if (vis[i]) continue; prime[m++] = i; for (int j = i; j < 333333; j += i) { vis[j] = 1; } } while (~scanf("%lld", &n) && n) { printf("%d\n", solve()); } return 0;}

转载地址:http://yupfm.baihongyu.com/

你可能感兴趣的文章
常用的sql脚本(陆续更新)
查看>>
mongodb的gridfs
查看>>
api图片传输,转成64位字符串进行传输
查看>>
Matlab高斯分布输入的PID控制
查看>>
【Java】自定义异常
查看>>
Ubuntu14.04server开放rootssh登录权限
查看>>
错误 1 error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏
查看>>
Linux 权限基础说明
查看>>
2017级面向对象程序设计寒假作业3
查看>>
迭代器
查看>>
Linux OpenCV 静态链接错误
查看>>
Java多线程&集合类-详细版
查看>>
Flask即插视图与tornado比较
查看>>
springboot笔记(一)
查看>>
学习 - SpringMVC
查看>>
logic标签用法
查看>>
MFC中自定义消息
查看>>
hdu 5258 wyh2000 and pupil(dfs)
查看>>
新安装的ubuntu编辑器问题
查看>>
SOJ - 11598
查看>>