- import java.io.BufferedReader;
- import java.io.InputStreamReader;
- import java.io.IOException;
- class Primenotdivisors{
-
- private static long getFactors(long n){
-
- long count = 0;
- long pf = 0;
- long result = 1;
- while((n&1) == 0){
- count++;
- n >>= 1;
- }
- if(count > 0){
- result = result * (count+1);
- pf +=1;
- }
- for(long i = 3; i <= (long)Math.sqrt(n); i += 2){
- count = 0;
- while( n%i == 0){
- count++;
- n = n/i;
- }
- if(count > 0){
- result = result * (count+1);
- pf +=1;
- }
- }
- if( n > 2){
- result = result * (2L);
- pf +=1;
- }
- return result - pf;
- }
- public static void main(String []args)throws IOException{
-
- try{
-
- BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
- int tc = Integer.parseInt(br.readLine());
- StringBuilder sb = new StringBuilder();
- while(tc-- > 0){
- long N = Long.parseLong(br.readLine());
- sb.append(getFactors(N)+"\n");
- }
- System.out.println(sb.toString());
-
- }catch(Exception e){
- return ;
- }
- }
- }
Language: Java