#5305: 為何一直TLE?


ntb (jjfg)


import java.util.Scanner;
public class JAVA
{
public static void main(String[] args)
{
Scanner input = new Scanner(System.in);
while (input.hasNext())
{
int x = input.nextInt();
boolean y = true;
int d = x/2;
for(int i = 2;i<=d;i++)
{
if(x%i==0)
{
y=false;
break;
}

}
if(y==true)
System.out.println("質數");
else
System.out.println("非質數");
}
}
}
 
以上是我的程式碼...
是否有更快的方式 ....
因為他一直說我TLE 
請大家幫我看一下....
還是...可以提供一下AC的版本 
#5308: Re:為何一直TLE?


grd (保持好奇心)


int d = x/2;

改為 sqrt(x)   (開根號...語法請改為java的)

 

#5312: Re:為何一直TLE?


poao899 (帥氣傳說勇士)


int d = x/2;

改為 sqrt(x)   (開根號...語法請改為java的)

 


java是Math.sqrt()