京东求幂那道题
//感觉跟牛妹的思路差不多,不知道为什么就是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; } }
#京东#