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的判斷
熱點內容