package day02;
public class week
{
public static void main(String[] args)
{for(int i=1;i<=100;i++)
{for(k=0,j=1;j<=i;j++)
{
if(i%j==0)
k++;
if (k==2&&j==i)
System.out.println(i);
}}
}
}
public class week
{
public static void main(String[] args)
{for(int i=1;i<=100;i++)
{for(k=0,j=1;j<=i;j++)
{
if(i%j==0)
k++;
if (k==2&&j==i)
System.out.println(i);
}}
}
}
int j;
for(int i=0;i<=100;i++){
j=2;
while(i%j!=0)
j++;
if(i==j){
System.out.println(i); }
}
}
第一处错误:for(k=0,j=1;j <=i;j++) 这里没有申明k,j变量.怎么使用呢.应改为:for(int k=0,j=1;j <=i;j++)
改正后即正确,不过我看不明白你那是怎么算的,
下边这种方法应该容易理解些,两个答案都是一样的
/**循环求质数,因为1即不是质数也不是合数,所以从2开始循环*/
for(int i=2;i<=100;i++)
{
boolean _result=true;//定义个变量用来记录是否是合数,默认为质数
for(int j=2;j<=Math.sqrt(i);j++)
{//因为求质数话,有个快捷方法,如果从2到n^1/2都不能被整除,那该数一定是质数
if(i%j==0)
{//出现这种情况的话,说明i为合数.
_result=false;//合数,设置为false
break;//跳出第二层循环
}
}
/**质数,打印出来*/
if(_result)
System.out.println(i);
}
boolean flag=false;
for(int i=2;i<100;i++){
flag=true;
for(int j=2;j<=(int)Math.sqrt(i);j++){
if(i%j==0){
flag=false;
break;
}
}
if(flag)
System.out.print(i+" ");
}
}}
Exception in thread "main" java.lang.NoClassDefFoundError: day02/java
public class ZhiShu{
public static void main(String[] args) {
int n = 10000;
boolean[] a = new boolean[n + 1];
long start = System.currentTimeMillis();
int num = 0;
for (int i = 2; i <= n; i++)
a[i] = true;
for (int i = 2; i <= Math.sqrt(n); i++) {
if (a[i])
for (int j = 2*i; j<= n; j+=i)
a[j ] = false;
}
for (int i = 0; i <= n; i++) {
if (a[i]) {
System.out.print(i + " ");
++num;
if (num % 50 == 0)
System.out.println();
}
}
long end = System.currentTimeMillis();
System.out.println();
System.out.println(num);
System.out.println("耗时:" + (end - start) + " ms");
}
}