So i was solving this DIVFACT
The logic i applied is :
Lets say the number is 5,
5! = 1*2*3*4*5
So,
Any one number selected from 2,3,4,5 will divide 5! (1,2,3,4,5)
Multiplication of any two numbers selected will also divide 5! (6,8,10,12,15,20)
Multiplication of any three numbers selected will divide 5! (24,30,40,60)
Multiplication of any four numbers selected will divide 5! (120)
So it will be like 4C1+4C2+4C3+4C4 = 2^4
So for input n, output will be 2^(n-1)
Is something wrong with my logic ??
The java code :
import java.io.*;
import java.math.*;
class Main
{
public static void main(String[] args) throws Exception
{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
String ip = br.readLine();
int t = Integer.parseInt(ip);
while(t-->0)
{
ip = br.readLine();
int pow = Integer.parseInt(ip);
if(pow==0)
{
bw.write("1\n");
continue;
}
pow--;
BigInteger b = new BigInteger("2").modPow(new BigInteger(pow+""),new BigInteger("1000000007"));
bw.write(b.toString());
bw.write("\n");
}
bw.close();
}
}
What is wrong with this ? it gives WA while running judge 6