public class Test {public static final int f = 1000000007;public static int num(int n){ if(n==1) return 1; return (num(n-1)+4n-3+sub1(n)+sub2(n))%f;}private static int sub1(int n){ int r=0; for(int i=2;i<=n/2;i++){ if(n%2==0){ int m = (int)Math.pow(n, 1.0/i) - 1; if(m>0) r += 2m; } } return r;}private static int sub2(int n){ int r=0; int le = (int)(Math.log(n)/Math.log(2)); for(int i=2;i<le;i++){ double d = Math.pow(n, 1.0/i); if(d-(int)d<0.000000001){ int m = (n-1)/i; r += 2*m; } } return r;}}
点赞 评论

相关推荐

牛客网
牛客网在线编程
牛客网题解
牛客企业服务