java素数算法
发布时间: 2025-10-07 01:37:59
⑴ 用java写个程序 判断 用户输入的数 是否是质数
使用java编写判断自然数是否为素数的方式是,使用scanner来接受用户输入的数值,使用素数的算法,实例如下:
Scannersr=newScanner(System.in);
System.out.print("请输入a的值:");
inta=sr.nextInt();
booleanis=true;
if(a<1)
{
System.out.println(a+"不是质数,因为他小于一");
}
else
{
List<Integer>list=newArrayList<Integer>();
for(inti=2;i<a;i++)
{
if(a%i!=1&&a%i!=a)
{
if(a%i==0){
is=false;
list.add(i);
}
}
}
if(is){
System.out.println("a是质数");
}else{
Stringyz="";
for(inti=0;i<list.size();i++)
{
if(yz=="")
{
yz=yz+list.get(i);
}else{
yz=yz+","+list.get(i);
}
}
System.out.println("a不是质数,因为他含有因子"+yz);
}
}
⑵ 用java找出1到100的素数,并求和
intsum=0;
for(inti=2;i<=100;i++){//质数
for(intk=2;k<=i;k++){//除数
//排除所有在i=k之前能被k整除(余数为0)的数
if(i%k==0&&i!=k){
break;
}
//输出所有在i=k且i%k=0的数
if(i%k==0&&i==k){
System.out.println(i);
sum+=i;
}
}
}
System.out.println("sum="+sum);
思路:先说什么是素数。除了1和它本身以外不再有其他的因数就是素数。所以你要做的就是对于一个整数i,让他和比他小的正整数取余数,如果为0的话就肯定不是素数了。如果都不为0且最后只有他本身那么这个数就是素数了。看上面循环,直接从2开始就刨除了1,不然判断条件里面还得写1的判断
热点内容