当前位置: 代码迷 >> Java相关 >> [求助]要求输出100内的素数
  详细解决方案

[求助]要求输出100内的素数

热度:106   发布时间:2006-10-06 13:21:55.0
[求助]要求输出100内的素数
要求输出100内的素数,
怎么写都可以!输出正确就可以了!~
先谢了!~
搜索更多相关的解决方案: 素数  输出  

----------------解决方案--------------------------------------------------------

public class SuShu
{
public boolean getSuShu(int n)
{
int temp=n;
int k=2;
for(;k<temp;k++)
{
if((temp%k)==0)
break;
}
if(k<temp)
return false;
else
return true;

}
public static void main(String[] args)
{
int[] inta=new int[100];
int flag=0;
SuShu app=new SuShu();
for(int i=2;i<100;i++)
{
if(app.getSuShu(i))
{
inta[flag++]=i;
}
}
//
for(int p=0;p<flag;p++)
{
System.out.println(""+inta[p]);
}
}
}

dan shi mei you you hua!!!


----------------解决方案--------------------------------------------------------
[CODE]

public class Find{
public static void main(String args[]){
System.out.println("* * 0~100 间的所有素数 * *");
int n=0;


outer:
for(int i=1;i<100;i+=2){
int k=15;
for(int j=2;j<=k;j++)
if(i%j==0)
continue outer;
System.out.print(" "+i);
n++;
if(n<10)
continue;
System.out.println();
n=0;
}
System.out.println();
}
}

[/CODE]
----------------解决方案--------------------------------------------------------
两位谢谢了!~学习了!~
----------------解决方案--------------------------------------------------------
以下是引用shanshansds在2006-10-7 17:24:04的发言:
[CODE]

public class Find{
public static void main(String args[]){
System.out.println("* * 0~100 间的所有素数 * *");
int n=0;


outer:
for(int i=1;i<100;i+=2){
int k=15;
for(int j=2;j<=k;j++)
if(i%j==0)
continue outer;
System.out.print(" "+i);
n++;
if(n<10)
continue;
System.out.println();
n=0;
}
System.out.println();
}
}

[/CODE]

不明白哦!~可以这样的格式写的吗!~????
outer:
.....
continue outer;
......
continue;
.....
运行了!好象没有2 3 5 7 11 13

[此贴子已经被作者于2006-10-7 22:47:44编辑过]


----------------解决方案--------------------------------------------------------

是标号
不过应该是不提倡这么写的 除非迫不得已
正常写循环就行了


----------------解决方案--------------------------------------------------------
个人感觉又退回汇编了
----------------解决方案--------------------------------------------------------

呵呵,和c一样吗!


----------------解决方案--------------------------------------------------------

import java.math.*;
public class Sushu
{ public static void main(String [] args)
{ final int n=100;
boolean tf=false;
for(int i=2;i<=n;i++)
{int x=(int)Math.round(Math.sqrt(i));
for(int j=2;j<=x;j++)
{if((i%j)==0)
{tf=false;
break;}
else
tf=true;}
if (tf)
System.out.print(i+" ");
}
}
}
试试吧
----------------解决方案--------------------------------------------------------
9楼的代码精简多了 其他楼上的方法的循环次数太多了 很多重复的 如果数字大点就会很慢了
但是还可以精简

我们都知道偶数不可能是素数 那么在循环的时候就可以跳过偶数
----------------解决方案--------------------------------------------------------
  相关解决方案