求100以内的素数?

宁静以致远_2020 2004-04-17 04:09:56
import java.applet.*;
import java.awt.*;
public class PrimNumber1 extends Applet
{
public void paint(Graphics g)
{
int sum=0,i,j;
for (i=1; i<=100; i++)
{
for (j=2; j<=i/2; j++)
{
if (i%j==0)
{
break;
}
if (j>i/2)
{
g.drawString("素数:"+i,10,20);
}
}
}
}
}
请问各位大侠,这个程序怎么算不出来100以内的素数呢?
...全文
253 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
DESL 2004-04-17
  • 打赏
  • 举报
回复
public class shu
{

public static void main(String args[])
{
int j,i;
for(i=2;i<100;i++)
{
for(j=2;j<i;j++)

if(i%j==0)
break;
if(i==j)
System.out.println(i);
}
}
}
dlxu 2004-04-17
  • 打赏
  • 举报
回复
呵呵,不是从2到z/2,是2到z的平方根
Dongluo 2004-04-17
  • 打赏
  • 举报
回复
public class x{
public static void main(String [] args){
int i=0;
for(int z=1;z<=100;z++){
i=0;
for(int j=2;j<=z/2;j++)
if (z%j==0)
i=1;
if (i==0)
System.out.println(z);
}

}
}
CoolAbu 2004-04-17
  • 打赏
  • 举报
回复
给你一个经典的求质数方法吧。

import java.util.*;

class Sieve {
public static final boolean PRINT=false;

public static void main(String[] args) {
int n=1000000;//多少以内
long start=System.currentTimeMillis();
BitSet b=new BitSet(n);
int count=0;
int i;

for(i=2;i<=n;i++)
b.set(i);
i=2;
while(i*i<=n)
{
if(b.get(i))
{
if(PRINT) System.out.println(i);
count++;
int k=2*i;
while(k<=n)
{
b.clear(k);
k+=i;
}
}
i++;
}

while(i<=n)
{
if(b.get(i))
{
if(PRINT) System.out.println(i);
count++;

}
i++;
}
long end=System.currentTimeMillis();
System.out.println(count+" primes");
System.out.println((end-start) + " milliseconds");
}

}

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧