import java.util.Scanner;
import java.math.*;
public class JAVA {
public static void main(String[] args)
{
Scanner input = new Scanner(System.in);
int a;
int i,j,n=0;
String f;
while(input.hasNext())
{
f="true";
a=input.nextInt();
for(i=2;i<=Math.sqrt(a);i++)
{
if(a%i==0 && a!=2)
{
f="false";
System.out.println("非質數");
break;
}
}
if(f=="true")
{
System.out.println("質數");
}
}
}
}
import java.util.Scanner;
import java.math.*;
public class JAVA {
public static void main(String[] args)
{
Scanner input = new Scanner(System.in);
int a;
int i,j,n=0;
String f;
while(input.hasNext())
{
f="true";
a=input.nextInt();
for(i=2;i<=Math.sqrt(a);i++)
{
if(a%i==0 && a!=2)
{
f="false";
System.out.println("非質數");
break;
}
}
if(f=="true")
{
System.out.println("質數");
}
}
}
}
在測資非常多筆的時候
輸入可以考慮不要使用Scanner
輸出也可以再加快
import java.util.Scanner;
import java.math.*;
public class JAVA {
public static void main(String[] args)
{
Scanner input = new Scanner(System.in);
int a;
int i,j,n=0;
String f;
while(input.hasNext())
{
f="true";
a=input.nextInt();
for(i=2;i<=Math.sqrt(a);i++)
{
if(a%i==0 && a!=2)
{
f="false";
System.out.println("非質數");
break;
}
}
if(f=="true")
{
System.out.println("質數");
}
}
}
}
在測資非常多筆的時候
輸入可以考慮不要使用Scanner
輸出也可以再加快
import java.util.Scanner;
import java.math.*;
public class JAVA {
public static void main(String[] args)
{
Scanner input = new Scanner(System.in);
int a;
int i,j,n=0;
String f;
while(input.hasNext())
{
f="true";
a=input.nextInt();
for(i=2;i<=Math.sqrt(a);i++)
{
if(a%i==0 && a!=2)
{
f="false";
System.out.println("非質數");
break;
}
}
if(f=="true")
{
System.out.println("質數");
}
}
}
}
StringBuffer >
BufferedReader >
這樣會比較快,
你的質數演算也可以先捨棄偶數,
從奇數開始 += 2 上限到你的sqrt,
有解