您的位置:首页 > 编程语言 > Java开发

java质数判断/质数因子/所有质数(素数)*

2016-08-14 10:56 351 查看
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
;//标志数组
//从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);
}
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐