hdu5407数学
来源:互联网 发布:转换成淘宝客链接 编辑:程序博客网 时间:2024/05/28 05:18
神马鬼?
import java.io.BufferedInputStream;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.io.OutputStreamWriter;import java.io.PrintWriter;import java.io.StreamTokenizer;import java.math.BigInteger;import java.util.ArrayList;import java.util.Arrays;import java.util.Collection;import java.util.Collections;import java.util.Comparator;import java.util.HashMap;import java.util.HashSet;import java.util.Iterator;import java.util.LinkedList;import java.util.NavigableSet;import java.util.PriorityQueue;import java.util.Queue;import java.util.Scanner;import java.util.Set;import java.util.SortedSet;import java.util.Stack;import java.util.StringTokenizer;import java.util.TreeSet;import org.omg.CORBA.Object;public class Main { public static void main(String[] args) throws IOException{ StreamTokenizer cin = new StreamTokenizer(new BufferedInputStream(System.in)); InputReader in = new InputReader(System.in) ; PrintWriter out = new PrintWriter(System.out) ; int t = in.nextInt() ; while(t-- > 0){ new Task().solve(in, out) ; //out.flush() ; } out.flush() ; }}class Task{ static final int N = 1000001 ; static final long mod = 1000000007L ; static long[] f = new long[N+1] ; static boolean[] vis = new boolean[1003] ; static int[] prime = new int[1003] ; static int pid ; static{ pid = 0 ; Arrays.fill(vis, false) ; for(int i = 2 ; i <= 1000 ; i++){ if(! vis[i]) prime[pid++] = i ; for(int j = 0 ; j < pid && prime[j] * i <= 1000 ; j++){ vis[prime[j]*i] = true ; if(i % prime[j] == 0) break ; } } f[1] = 1 ; for(int i = 2 ; i <= N ; i++){ int n = i ; int p = -1 ; int d = 0 ; for(int k = 0 ; k < pid && prime[k] <= n ; k++){ if(n % prime[k] == 0){ d = 1 ; while(n % prime[k] == 0){ n /= prime[k] ; } if(n == 1) p = prime[k] ; break ; } } if(d == 0 && n != 1) p = n ; if(p == -1) f[i] = f[i-1] ; else f[i] = f[i-1] * p % mod ; } } long Pow(int x , long y){ long s = 1 , r = (long)x ; for(; y > 0; y >>= 1){ if((y & 1) > 0){ s = (s * r) % mod ; } r = (r * r) % mod ; } return s ; } public void solve(InputReader in , PrintWriter out) throws IOException{ int n = in.nextInt() ; long ans = f[n+1] * Pow(n+1 , mod-2) % mod ; out.println(ans); }}class InputReader{ public BufferedReader reader; public StringTokenizer tokenizer; public InputReader(InputStream stream){ reader = new BufferedReader(new InputStreamReader(stream), 32768) ; tokenizer = null ; } public String next(){ while(tokenizer == null || ! tokenizer.hasMoreTokens()){ try{ tokenizer = new StringTokenizer(reader.readLine()); }catch (IOException e) { throw new RuntimeException(e); } } return tokenizer.nextToken(); } public int nextInt() { return Integer.parseInt(next()); } public long nextLong() { return Long.parseLong(next()); }}
0 0
- hdu5407数学
- [数学]hdu5407 CRB and Candies
- hdu5407
- HDU5407 CRB and Candies
- HDU5407 CRB and Candies
- HDU5407 CRB and Candies 数论
- 数学
- 数学
- 数学
- 数学
- 数学
- 数学
- 数学
- 数学
- 数学
- 数学
- 数学
- 数学
- POJ 题目3237 Tree(Link Cut Tree边权变相反数,求两点最大值)
- 排序算法(Java语言)——希尔排序
- studio 2010快捷键
- 强名称程序集(strong name assembly)——为程序集赋予强名称
- Perfection
- hdu5407数学
- 02-线性结构4. Pop Sequence (25)
- 数组的练习
- 虚拟地址转译成物理地址 双机模式手动查找
- Mathematical relationships among map scale, raster data resolution, and map display resolution
- Hardwood Species POJ 2418
- C#与C++的命名空间
- Activity声明周期在不同场景的调用
- Java switch-case 的特殊用法