zoukankan      html  css  js  c++  java
  • #10202. 「一本通 6.2 练习 5」樱花

    Lisa

    这个(n!)不如先简简单单看成n,然后可知,(x>n)(y>n)不如令(x=n+a,y=n+b)代入原式子,可知

    (a*b=n^2)

    那么a,b就是它的一对因子了

    #include<iostream>
    #include<cstdio>
    #include<algorithm>
    #include<cstring>
    #define int long long
    using namespace std;
    int vis[1000001];
    int prime[1000001];
    int cnt;
    int n;
    void ol(){
    	for(int i=2;i<=n;++i){
    		if(!vis[i]){
    			prime[++cnt]=i;
    		}
    		for(int j=1;j<=cnt&&i*prime[j]<=n;++j){
    			vis[i*prime[j]]=1;
    			if(i%prime[j]) break;
    		}
    	}
    }
    int cntt[10000001];
    void divide(int x){
    	for(int i=1;prime[i]*prime[i]<=x;++i){
    		while(x%prime[i]==0){
    			cntt[prime[i]]++;
    			x/=prime[i];
    		}
    	}
    	if(x!=1){
    	cntt[x]++;
    	}
    	return ;
    }
    int ans=1;
    int mod=1000000007;
    signed main(){
    	scanf("%d",&n);
    	ol();
    	for(int i=1;i<=n;++i){
    		divide(i);
    	}
    	for(int i=1;i<=cnt;++i){
    		ans=ans*((cntt[prime[i]]*2+1));
    		ans%=mod;
    	}
    	cout<<(ans);
    	return 0;
    }
    
  • 相关阅读:
    线性回归(linear regression)之监督学习
    hadoop学习笔记之倒排索引
    Java学习笔记之==与equals
    Java学习笔记之深入理解引用
    mysql
    mysql
    JAVA
    nio
    JVM
    java
  • 原文地址:https://www.cnblogs.com/For-Miku/p/15065456.html
Copyright © 2011-2022 走看看