import java.util.*;
public class Main{
public static boolean primes(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 a=sc.nextInt();
if(primes(a))System.out.println("Yes");
else System.out.println("No");
}
}
}
import java.util.*;
public class Main{
public static void divide(int n){
for(int i=2;i<=n/i;i++){
if(n%i==0){
int s=0;
while(n%i==0){
n/=i;
s++;
}
System.out.println(i+" "+s);
}
}
if(n>1)System.out.println(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 a=sc.nextInt();
divide(a);
}
}
}
O(nlogn)
耗时:850ms
import java.util.*;
public class Main{
static int N=1000010;
static int primes[]=new int[N];
static boolean st[]=new boolean[N];
static int cnt=0;
public static void get_primes(int n){
for(int i=2;i<=n;i++){
if(!st[i]){
primes[cnt++]=i;
}
for(int j=i+i;j<=n;j+=i)st[j]=true;
}
}
public static void main(String []args){
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
get_primes(n);
System.out.println(cnt);
}
}
O(nloglogn)
耗时:782 ms
import java.util.*;
public class Main{
static int N=1000010;
static int primes[]=new int[N];
static boolean st[]=new boolean[N];
static int cnt=0;
public static void get_primes(int n){
for(int i=2;i<=n;i++){
if(!st[i]){
primes[cnt++]=i;
//不需要去枚举从2~n-1里的所有数
//当枚举的n是质数时,将前面与n有倍数约数关系的数字筛掉
//这样枚举的时候只需枚举质数即可,减少枚举的次数
for(int j=i+i;j<=n;j+=i)st[j]=true;
}
}
}
public static void main(String []args){
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
get_primes(n);
System.out.println(cnt);
}
}
耗时:766 ms
import java.util.*;
public class Main{
static int N=1000010;
static int primes[]=new int[N];
static boolean st[]=new boolean[N];
static int cnt=0;
public static void get_primes(int n){
//依次枚举每个数字
for(int i=2;i<=n;i++){
if(!st[i])primes[cnt++]=i;
//如果说当前的i没有没被筛掉则说明他是质数
for(int j=0;primes[j]*i<=n;j++){
st[primes[j]*i]=true;
//存在i倍的关系则把他给筛掉
if(i%primes[j]==0)break;
//说明primes[j]一定是i的最小质因子,筛掉i
}
}
}
public static void main(String []args){
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
get_primes(n);
System.out.println(cnt);
}
}
import java.util.*;
public class Main{
public static int gcd(int a,int b){
while(b!=0){
int c=a%b;
a=b;
b=c;
}
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));
}
}
}
/*
组合数:C(a,b)
public static long C(long a,long b){
long res=1;
for(int i=a,j=1;j<=b;i--,j++){
res=res*i/j;
if(res>n)return res;
}
return res;
}
*/
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.util.*;
public class Main{
static BufferedReader bf=new BufferedReader(new InputStreamReader(System.in));
static PrintWriter pW = new PrintWriter(new OutputStreamWriter(System.out));
public static long qmi(int a,int b,int p) {
long ans=1;
//开long
//反复平方法
while(b>0) {
if((b&1)==1)ans=ans*a%p;
//如果说末位为1则ans=a%p
b>>=1;
//再把这一位给删掉
a=(int)((long)a*a%p);
//反复平方法再取模
}
return ans;
}
public static void main(String []args) throws NumberFormatException, IOException {
int n=Integer.parseInt(bf.readLine());
while(n-->0) {
String s[]=bf.readLine().split(" ");
int a=Integer.parseInt(s[0]);
int b=Integer.parseInt(s[1]);
int p=Integer.parseInt(s[2]);
pW.println(qmi(a,b,p));
}
pW.flush();
}
}
import java.util.*;
public class Main{
static int N=2010;
static int mod=1000000007;
//写成1e9+7会报精度损失
//直接写数字即可
static int c[][]=new int[N][N];
public static void init(){
for(int i=0;i<N;i++){
for(int j=0;j<=i;j++){
if(j==0)c[i][j]=1;
//注意边界情况,从中选0个苹果的方案为1
else c[i][j]=(c[i-1][j]+c[i-1][j-1])%mod;
//递推式,数字比较大需要取模
}
}
}
public static void main(String []args){
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
init();
while(n-->0){
int a=sc.nextInt();
int b=sc.nextInt();
System.out.println(c[a][b]);
}
}
}
✨ ✨ ✨
看到这里,不妨点个关注