京东求幂那道题
//感觉跟牛妹的思路差不多,不知道为什么就是20%,自己手算了几个都可以
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
//int n = sc.nextInt();
int n=5;
long count=0;
for(int i =1;i<=n;i++) {
for(int j=1;j<=n;j++) {
if(i==1) {
count=(count+n*n)%1000000007;
break;
}
if(j==1) count=(count+1)%1000000007;
else {
int m=getNum(i,j,n);//获取一共可以转化成几个底比自己大的幂
count=(count+1+2*m)%1000000007;
}
}
}
System.out.println(count);
}
public static int getNum(int a,int b,int n) {
int m=0;
if(Math.pow(a,b)<=n) m++;
//ArrayList<Integer> list = new ArrayList<>();
//int p=0;
for(int i=2;i<=b/2;i++) {
if(b%i==0 && Math.pow(a, i)<=n) m++;
}
return m;
}
} #京东#
查看18道真题和解析

