hdu 6182A Math Problem(快速幂)

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

InputThere are no more than 50 test cases.

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

1≤n≤10^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);
                }
        }
}

原文地址:https://www.cnblogs.com/qdu-lkc/p/12258893.html

时间: 2024-11-05 19:42:33

hdu 6182A Math Problem(快速幂)的相关文章

Hdu 4965(矩阵快速幂)

题目链接 Fast Matrix Calculation Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others)Total Submission(s): 87    Accepted Submission(s): 39 Problem Description One day, Alice and Bob felt bored again, Bob knows Alice is a

hdu 3221 Brute-force Algorithm(快速幂取模,矩阵快速幂求fib)

http://acm.hdu.edu.cn/showproblem.php?pid=3221 一晚上搞出来这么一道题..Mark. 给出这么一个程序,问funny函数调用了多少次. 我们定义数组为所求:f[1] = a,f[2] = b, f[3] = f[2]*f[3]......f[n] = f[n-1]*f[n-2].对应的值表示也可为a^1*b^0%p,a^0*b^1%p,a^1*b^1%p,.....a^fib[n-3]*b^fib[n-2]%p.即a,b的指数从n=3以后与fib数列

hdu 5105 Math Problem(数学)

题目链接:hdu 5105 Math Problem 题目大意:给定a,b,c,d,l,r,表示有一个函数f(x)=|a?x3+b?x2+c?x+d|(L≤x≤R),求函数最大值. 解题思路:考虑极点即可,将函数求导后得到f′(x)=0的x,即为极值点.在极值点处函数的单调性会发生变化,所以最大值一定就在区间边界和极值点上.注意a=0,b=0的情况,以及极值点不在区间上. #include <cstdio> #include <cstring> #include <cmath

HDU 1575 &amp;&amp; 1757 矩阵快速幂&amp;&amp;构造矩阵入门

HDU 1575 Tr A Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 2912    Accepted Submission(s): 2167 Problem Description A为一个方阵,则Tr A表示A的迹(就是主对角线上各项的和),现要求Tr(A^k)%9973. Input 数据的第一行是一个T,表示有T组数据.每组

hdu 5667 Sequence 矩阵快速幂

题目链接:hdu 5667 Sequence 思路:因为fn均为a的幂,所以: 这样我们就可以利用快速幂来计算了 注意: 矩阵要定义为long long,不仅仅因为会爆,还会无限超时 要对a%p==0特判,以为可能出现指数%(p-1)==0的情况,那么在快速幂的时候返回的结果就是1而不是0了 /************************************************************** Problem:hdu 5667 User: youmi Language:

HDU 1575-Tr A(矩阵快速幂)

Tr A Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 3169    Accepted Submission(s): 2367 Problem Description A为一个方阵,则Tr A表示A的迹(就是主对角线上各项的和),现要求Tr(A^k)%9973. Input 数据的第一行是一个T,表示有T组数据. 每组数据的第一行有

hdu 2276(矩阵快速幂)

Kiki & Little Kiki 2 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 2301    Accepted Submission(s): 1176 Problem Description There are n lights in a circle numbered from 1 to n. The left of li

hdu 1452 Happy 2004 (快速幂+取模乘法逆元)

Problem Description Consider a positive integer X,and let S be the sum of all positive integer divisors of 2004^X. Your job is to determine S modulo 29 (the rest of the division of S by 29).Take X = 1 for an example. The positive integer divisors of

ZOJ 3690 &amp; HDU 3658 (矩阵快速幂+公式递推)

ZOJ 3690 题意: 有n个人和m个数和一个k,现在每个人可以选择一个数,如果相邻的两个人选择相同的数,那么这个数要大于k 求选择方案数. 思路: 打表推了很久的公式都没推出来什么可行解,好不容易有了想法结果WA到天荒地老也无法AC.. 于是学习了下正规的做法,恍然大悟. 这道题应该用递推 + 矩阵快速幂. 我们设F(n) = 有n个人,第n个人选择的数大于k的方案数: G(n) = 有n个人,第n个人选择的数小于等于k的方案数: 那么递推关系式即是: F(1)=m?k,G(1)=k F(n