1.质数(素数)数判断:
boolean isPrime(int number) {
boolean isPrime = true;
for (int i = 2; i <= Math.sqrt(number); i++) {
if (number % i == 0) {
isPrime = false;
}
}
return isPrime;
}
2.质数因子
import java.util.Scanner;
public class Main{
public static void main(String[] args)
{
Scanner sc=new Scanner(System.in);
int num=sc.nextInt();
sc.close();
int tmp=1;
boolean isfirst=true;
while(tmp<=num)
{
int i=2;
while(tmp*i<=num&&num%(tmp*i)!=0)
{
i++;
}
tmp=tmp*i;
if(tmp<=num)
{
if(!isfirst)
{
System.out.print(" ");
}
else {
isfirst=false;
}
System.out.print(i);
}
}
}
}
3.某个整数内的所有质数
(某数如果是质数,他的整数倍一定不是质数,进行标记处理)
import java.util.Scanner;
public class test{
public static void main(String[] args)
{
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
sc.close();
int[] flag=new int[n];//标志数组
//从2开始遍历到根号n
for(int i=2;i*i<n;i++)//i*i<n====i<Math.sqrt(n)
{
//如果未被标记则为质数,从i倍开始标记它的所有倍数
if(flag[i]==0)
{
for(int j=i;i*j<n;j++)
{
flag[i*j]=1;
}
}
}
//从2开始遍历输出结果
for(int i=2;i<n;i++)
{
if(flag[i]==0)
{
System.out.println(i);
}
}
}
}