2022-01-15

69 阅读2分钟
import java.util.Scanner;
public class Main{
    public static boolean isprimes(int n){
        if(n < 2 ) return false;
        for(int i = 2; i <= n/i; i++){
            if(n % i == 0) return false;
        }
        return true;
    }
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        while(n-- > 0){
            int x = sc.nextInt();
            if(isprimes(x)){
                System.out.println("Yes");
            }else{
                System.out.println("No");
            }
        }
    }
}
import java.util.Scanner;
public class Main{
    
    public static void fun(int n){
        
        for(int i = 2; i <= n/i;i++){
            if(n % i==0){
                int res = 0;
                while(n % i ==0){
                    n/=i;
                    res++;
                }
                System.out.printf("%d %d\n",i,res);
            }
        }
        if(n >  2) System.out.printf("%d %d\n",n,1);
        System.out.println();
    }
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        while(n-- > 0){
            int x = sc.nextInt();
            fun(x);
        }
    }
}
import java.util.Scanner;
public class Main{
    static int idx = 0;
    static int N = 1000010;
    static int[] primes = new int[N];
    static boolean[] st  =new boolean[N];
    // 朴素筛法
    // public static void get_primes(int n){
    //     for(int i = 2; i <= n;i++){
    //         if(!st[i]) primes[idx++] = i;
    //         for(int j = i + i; j <= n; j+=i)
    //             st[j] = true;
    //     }
    // }
    
    // 埃氏筛法
    // public static void get_primes(int n){
    //     for(int i = 2;i  <= n; i++){
    //         if(!st[i]){
    //             primes[idx++] = i;
    //             for(int j = i + i; j <= n;j+=i) st[j] = true;
    //         }
            
    //     }
    // }
    
    // 线性筛法
    public static void get_primes(int n){
        for(int i = 2; i <= n; i++){
            if(!st[i]) primes[idx++] = i;
            for(int j = 0; primes[j] <= n / i; j++){
                st[primes[j] * i] = true;
                if(i % primes[j] == 0) break;
            }
        }
    }
    
    
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        get_primes(n);
        System.out.println(idx);
    }
}
import java.util.Scanner;
import java.util.HashMap;
public class Main{
    static HashMap<Integer,Integer> primes = new HashMap<>();
    static long res ;
    static int mod = (int)1e9 + 7;
    public static void getNums(int n){
        for(int i = 2; i <= n / i;i++){
            while(n % i == 0){
                n /= i;
                primes.put(i, primes.getOrDefault(i,0) + 1);
            }
        }
        if( n > 2) primes.put(n,primes.getOrDefault(n,0) + 1);
    }
    
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        while( n-- > 0){
            int x = sc.nextInt();
            getNums(x);
        }
        res = 1;
        for(int a: primes.values()){
            res = res * (a + 1) % mod;   
        }
        System.out.println(res);
        
    }
}
import java.util.Scanner;
import java.util.HashMap;
public class Main{
    static int mod = (int)1e9 + 7;
    static int N = 110;
    static HashMap<Integer,Integer> primes = new HashMap<>();
    public static void getNums(int n){
        for(int i = 2; i <= n / i;i++){
            while(n % i == 0){
                n /=i;
                primes.put(i,primes.getOrDefault(i,0) + 1);
            }
        }
        if( n > 1) primes.put(n, primes.getOrDefault(n,0) + 1);
    }
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        int n  = sc.nextInt();
        while( n-- > 0){
            int x = sc.nextInt();
            getNums(x);
        }
        long res = 1;
        for(Integer a: primes.keySet()){
            long t = 1;
            int k = primes.get(a);
            
            while(k-- != 0){
                t = (t * a + 1) % mod;
            }
            res = t * res % mod;
        }
        System.out.println(res);
    }
}
import java.util.Scanner;
public class Main{
    
    public static int gcd(int a,int b){
        if(b!= 0){
            return gcd(b,a % b);
        }else{
            return a;
        }
    }
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        while( n-- > 0){
            int a = sc.nextInt();
            int b = sc.nextInt();
            System.out.println(gcd(a,b));
        }
    }
}
import java.util.Scanner;
public class Main{
    
    static long res;
    public static void eulers(int n){
        res = n;
        for(int i = 2; i <=  n/i; i++){
            if(n % i==0){
                while(n % i == 0){
                    n /= i;
                }
                res  = res / i * (i - 1);
            }
        }
        if( n > 1) res = res / n * (n - 1);
        System.out.println(res);
        
    }
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        while(n-- > 0){
            int x = sc.nextInt();
            eulers(x);
        }
    }
}
import java.util.Scanner;
public class Main{
    static int N = 1000010;
    static int[] primes = new int[N];
    static boolean[] st = new boolean[N];
    static int idx = 0;
    static int[] phi = new int[N];
    static long res = 0;
    public static void get_eulers(int n ){
        phi[1] = 1;
        for(int i = 2; i <= n; i++){
            if(!st[i]){
                primes[idx++] = i;
                phi[i] = i - 1;
            }
            for(int j = 0; primes[j] <= n/i;j++){
                st[primes[j] * i] = true;
                if(i % primes[j] == 0){
                    phi[primes[j] * i] = primes[j] * phi[i];
                    break;
                }
                phi[primes[j] * i] = phi[i] * (primes[j] - 1);
            }
        }
        for(int a: phi){
            res += a;
        }
        System.out.println(res);
    }
    
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        get_eulers(n);
    }
}
import java.util.Scanner;
public class Main{
    static int N = 100010;
    static long res = 1;
    public static long qmi(long a,int k,int p){
        res = 1;
        while(k!=0){
            if((k & 1) != 0) res = res * a % p;
            k >>= 1;
            a = a * a % p;
        }
        return res;
    }
    
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        while(n-- > 0){
            int a = sc.nextInt();
            int b = sc.nextInt();
            int k = sc.nextInt();
            System.out.println(qmi(a,b,k));
        }
    }
}
import java.util.Scanner;
public class Main{
    
    public static long qmi(long a,int k,int p){
        long res = 1;
        while(k != 0){
            if((k & 1) != 0) res = res * a % p;
            k >>= 1;
            a = a * a % p;
        }
        return res;
    }
    
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        while(n-- > 0){
            int a = sc.nextInt();
            int p = sc.nextInt();
            if( a % p != 0){
                System.out.println(qmi(a, p - 2, p));
            }else{
                System.out.println("impossible");
            }
        }
    }
}
import java.util.Scanner;
public class Main{
    static int N = 2010;
    static int[][] c = new int[N][N];
    static int mod = (int)1e9 + 7;
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        for(int i = 0; i < N;i++){
            for(int j = 0; j <= i;j++){
                if(j == 0){
                    c[i][j] = 1;
                }else{
                    c[i][j] = (c[i - 1][j] + c[i - 1][j - 1]) % mod;
                }
            }
        }
        while(n-- > 0){
            int a = sc.nextInt();
            int b = sc.nextInt();
            System.out.println(c[a][b]);
        }
    }
}
import java.util.Scanner;
public class Main{
    static int N = 100010;
    static long[] fact = new long[N];
    static long[] infact = new long[N];
    static int mod = (int) 1e9 + 7;
    public static long qmi(long a,int k,int p){
        long res = 1;
        while(k != 0){
            if((k & 1) != 0) res = res * a % p;
            k >>= 1;
            a = a * a % p;
        }
        return res;
    }
    
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        fact[0] = infact[0] = 1;
        for(int i = 1; i < N;i++){
            fact[i] = fact[i - 1] * i % mod;
            infact[i] = infact[i - 1] * qmi(i,mod - 2,mod) % mod;
        }
        while(n-- > 0){
            int a = sc.nextInt();
            int b = sc.nextInt();
            System.out.println(fact[a] * infact[a - b] % mod * infact[b] % mod);
        }
    }
}