public class temp
{
public static void main(String[] args)
{
int i,j;
for(i=2;i<=1000;i++)
{
for(j=2;j<i/2+1;j++)
if(i%j==0) break;
else System.out.println("质数是:"+i);
}
}
}
{
public static void main(String[] args)
{
int i,j;
for(i=2;i<=1000;i++)
{
for(j=2;j<i/2+1;j++)
if(i%j==0) break;
else System.out.println("质数是:"+i);
}
}
}
else System.out.println("质数是:"+i);这怎么行,如果某一个数字不能整除,并不代表下一个数字也不能整除。一般的判断是这样的
for(j=2;j<i/2+1;j++){
if(i%j==0) break;
}
if(j>=i/2+1){
System.out.println("质数是:"+i);
}来确保每个需要判断的都判断过来,只有所有的都不等于0,才行。
public class PrimeTest { /**
*判断是否是质数
*/
public static void main(String[] args) {
String s;
int ns;
int i;
char c;
String result="";
do{
s=JOptionPane.showInputDialog("请输入一个数字");
ns=Integer.parseInt(s);
if(ns==1)
//System.out.println(ns+"既不是质数,也不是合数!");
result=ns+"既不是质数,也不是合数!";
else{
for(i=2;i<=ns-1;i++){
if(ns%i==0)
break;
}
if(i==ns)
//System.out.println(ns+"是质数");
result=ns+"是质数";
else
//System.out.println(ns+"不是质数");
result=ns+"不是质数";
}
JOptionPane.showMessageDialog(null, result);
String s2=JOptionPane.showInputDialog("继续判断吗?");
c=s2.charAt(0);
}while(c=='y'||c=='Y');
}}
int i,j;
for(i=2;i<=20;i++)
{
for(j=2;j<i/2+1;j++) {
if(i%j==0) break;
}
if(j == i/2+1) System.out.println("质数是:"+i);
}
简单修改就可以了
{
for(j=2;j<i/2+1;j++)
if(i%j==0){
System.out.println(i+"为合数");
break;
}
else System.out.println("质数是:"+i);
}