Poj.1730 Perfect Pth Powers【数学】 2015/11/13
2015-11-13 20:11
375 查看
Perfect Pth Powers
Description
We say that x is a perfect square if, for some integer b, x = b2. Similarly, x is a perfect cube if, for some integer b, x = b3. More generally, x is a perfect pth power if, for some integer b, x = bp. Given an integer x you
are to determine the largest p such that x is a perfect pth power.
Input
Each test case is given by a line of input containing x. The value of x will have magnitude at least 2 and be within the range of a (32-bit) int in C, C++, and Java. A line containing 0 follows the last test case.
Output
For each test case, output a line giving the largest integer p such that x is a perfect pth power.
Sample Input
Sample Output
Source
Waterloo local 2004.01.31
不明所以,为何要加0.1???
Time Limit: 1000MS | Memory Limit: 10000K | |
Total Submissions: 17232 | Accepted: 3946 |
We say that x is a perfect square if, for some integer b, x = b2. Similarly, x is a perfect cube if, for some integer b, x = b3. More generally, x is a perfect pth power if, for some integer b, x = bp. Given an integer x you
are to determine the largest p such that x is a perfect pth power.
Input
Each test case is given by a line of input containing x. The value of x will have magnitude at least 2 and be within the range of a (32-bit) int in C, C++, and Java. A line containing 0 follows the last test case.
Output
For each test case, output a line giving the largest integer p such that x is a perfect pth power.
Sample Input
17 1073741824 25 0
Sample Output
1 30 2
Source
Waterloo local 2004.01.31
不明所以,为何要加0.1???
#include<iostream> #include<cmath> #include<cstdio> #include<cstring> #define eps 1e-6 using namespace std; int main(){ int n,t,p; while( ~scanf("%d",&n) ){ if( n == 1 || n == -1 ) continue; if( n == 0 ) break; if( n > 0 ){ for( int i = 31 ; i >= 1 ; --i ){ t = (int)(pow(1.0*n,1.0/i)+0.1); p = (int)(pow(1.0*t,1.0*i)+0.1); if( n == p ){ printf("%d\n",i); break; } } } else{ n = -n; for( int i = 31 ; i >= 1 ; i-=2 ){ t = (int)(pow(1.0*n,1.0/i)+0.1); p = (int)(pow(1.0*t,1.0*i)+0.1); if( n == p ){ printf("%d\n",i); break; } } } } return 0; }
相关文章推荐
- NodeJs端口被占用的情况
- css实现背景渐变色效果
- 【JavaScript基础知识】——DOM基础
- 关于css中 line-height 在ie中和在chrome中错位的问题
- 前端交互消息显示插件 jQuery Messenger(基于jQuery)
- 计算器功能实现
- js 压缩图片 H5
- 删除 windows 下 node_modules 过深的目录
- Google Protocol Buffer 的使用和原理
- 剑指Offer-16-翻转链表
- html
- jquery 设置表格奇偶数的颜色和行被选中的颜色样式jquery 设置表格奇偶数的颜色和行被选中的颜色样式
- HTML5存储系统
- 【leetcode】【24】Swap Nodes in Pairs
- JS处理时间问题
- 全面理解Javascript中Function对象的属性和方法
- JS中typeof与instanceof的区别
- JQuery 之 Ajax 异步和同步浅谈
- HTML5 中的事件监听
- JS中的闭包