import java.util.Scanner;
public class Main{
static int N = 1000010;
static int[] primes = new int[N];
static int idx = 0;
static boolean[] st = new boolean[N];
public static void getNums(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();
getNums(n);
System.out.println(idx);
}
}
import java.util.Scanner;
import java.util.HashMap;
public class Main{
static HashMap<Integer,Integer> primes = new HashMap();
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 > 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(int a: primes.values()){
res = res * (a + 1) % mod;
}
System.out.println(res);
}
}
import java.util.*;
public class Main{
static HashMap<Integer,Integer> primes = new HashMap();
static int mod = (int) 1e9 + 7;
static long res = 1;
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);
}
for(Integer a: primes.keySet()){
int k = primes.get(a);
long s = 1;
while(k-- > 0) s = (s * a + 1) % mod;
res = res * s % 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 get_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();
get_eulers(x);
}
}
}
import java.util.Scanner;
public class Main{
static int N = 1000010;
static int[] primes = new int[N];
static int[] phi = new int[N];
static boolean[] st = new boolean[N];
static int idx = 0;
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] = phi[i] * primes[j];
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{
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 k = sc.nextInt();
int p = sc.nextInt();
System.out.println(qmi(a,k,p));
}
}
}
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[] arga){
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");
}
}
}