Java语言 50到100之间 的素数 帮我解读一下吧?谢谢

// ???? 50到100 的素数

class chp2_10
{
public static void main(String[] args)
{
int i,j,n=0;
for(i=50;i<=100;i++)
{
for(j=2;j<=i/2;j++)
if(i%j==0)
break;
if(j>=i/2+1)
{
if(n%6==1)
System.out.println("");
System.out.print(i+",");
n++;
}
}
}

}

class chp2_10
{
public static void main(String[] args)
{
int i,j,n=0;
for(i=50;i<=100;i++)//从50开始,一直找到100
{
for(j=2;j<=i/2;j++)//从2开始实验,是否能把i,除尽,一直尝试到i的一半
//因为一个数,不可能被比自己小一倍的数+1除尽
//比如8,可以被4除尽,但不能被5整除。且以后的数都不行
//所以只取i的一半。程序效率能提高一倍呢。
if(i%j==0)//如果能整除,跳出当前内循环,因为能除尽就不是素数了。
break;
//到这里,其实就找到素数了。
if(j>=i/2+1)//这里判定了一下j是否大于1的一半加1,
//如果小于,就说明不是素数,是上一个循环被break截断了。
//如果大于,说明上一个循环从头走到尾都没找到能除尽i的数,
//所以这个额数就是素数。
{
if(n%6==1)//这个n,是控制输出的,和素数无关。
System.out.println("");
System.out.print(i+",");
n++;
}
}
}

}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-09-19
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#include<string.h>
void fun(int m,int *k,int xx[])
{
int i,j,n=0,t;
for(i=100;i<m;i++)
{
t=1;
for(j=2;j<i;j++)
if(i%j==0)
{
t=0;
break;
}
if(t==1)
xx[n++]=i;
}
*k=n;
}
void main()
{
int m,n,zz[100];
system("CLS");
printf("please enter the up number:\n");
scanf("%d",&n);
fun(n,&m,zz);
printf("\nthere are %dprime number less than %d:\n\n ",m,n);
for(n=0;n<m;n++)
printf("\n %4d",zz[n]);
}
提示叫你输入数字的时候,你输入500就可以看见这中间的素数了
第2个回答  2011-09-18
其他语句还好,感觉n是在混淆视听,没意义··· ···
我不大会表达,大概只能告诉你。只要验证到i的一半的数都不是它的因数,那么i就是素数了···