zoukankan      html  css  js  c++  java
  • hdu 6182A Math Problem(快速幂)

    You are given a positive integer n, please count how many positive integers k satisfy kknkk≤n. 

    InputThere are no more than 50 test cases. 

    Each case only contains a positivse integer n in a line. 

    1n10^18
    OutputFor each test case, output an integer indicates the number of positive integers k satisfy k^k ≤ n in a line.

    Sample Input

    1
    4

    Sample Output

    1
    2
    主要注意long最大为多少 2^63-1,先求出来,就知道15^15正好小于,16^16就超long的范围

    代码:
    import java.math.BigInteger;
    import java.util.Scanner;
    
    public class Main{
            static long quick_pow(long a, long b){
                    long res = 1;
                    while(b > 0){
                            if((b&1) == 1) res = res * a;
                            a = a * a;
                            b >>= 1;
                    }
                    return res;
            }
            public static void main(String[] args) {
                    Scanner scan=new Scanner(System.in);
    //                BigInteger a=new BigInteger("2");
    //                System.out.println(a.pow(64));
    //                for(int i=1;i<=20;i++)
    //                    System.out.println(quick_pow(i,i));
                    while(scan.hasNext()){
                            int cnt=15;
                            long n=scan.nextLong();
                            for(long i=15;i>=1;i--){
                                    if(quick_pow(i,i)>n) cnt--;
                                    else break;
                            }
                            System.out.println(cnt);
                    }
            }
    }
  • 相关阅读:
    深港DJ好听的歌曲
    电调的相关知识
    CAD画图技巧经验
    第一期周二航拍视频分享 2017/07/10
    网站资料
    如何读懂零件图
    航拍技巧经验总汇
    乐迪AT9
    机器学习、数据挖掘、计算机视觉等领域经典书籍推荐
    Eclipse调试Java程序技巧
  • 原文地址:https://www.cnblogs.com/qdu-lkc/p/12258893.html
Copyright © 2011-2022 走看看