Untitled
unknown
plain_text
a year ago
1.1 kB
3
Indexable
#include <cmath> #include <cstdio> #include <vector> #include <iostream> #include <algorithm> #define ll long long #define MOD 1000000007 using namespace std; void sieve(ll n, bool prime[]) { for (ll i=1; i<=n; i++) prime[i] = 1; prime[1] = 0; for (ll i=2; i*i<=n; i++) { if (prime[i]) { for (ll j=i*i; j<=n; j += i) prime[j] = 0; } } } int expFactor(ll n, ll p) { ll x = p; ll exponent = 0; while ((n/x) > 0) { exponent += n/x; x *= p; } return exponent; } ll countFactors(int n) { ll ans = 1; bool prime[n+1]; sieve(n, prime); for (ll p=1; p<=n; p++) { if (prime[p]==1){ ans *= (2*expFactor(n, p) + 1)%MOD; ans%=MOD; } } return ans; } int main() { /* Enter your code here. Read input from STDIN. Print output to STDOUT */ ll t; cin>>t; while(t--){ ll n; cin>>n; cout<<countFactors(n)<<endl; } return 0; }
Editor is loading...
Leave a Comment