黑马程序员技术交流社区
标题:
程序有个小问题,请赐教。
[打印本页]
作者:
Friends★
时间:
2012-4-25 20:57
标题:
程序有个小问题,请赐教。
写了一个求素数的小程序,可以结果就是出不来,请帮我改一改!
public class Test10 {
public static void main(String[] args) {
int count = 0;
for(int i=2;i<100;i++){
boolean b=false;
for(int j=1;j<=i-1;j++){
if(i % j == 0) {
b = false;
break;
}
else {
b = true;
}
}
if(b == true) {
count ++;
System.out.println(i );
}
}
System.out.print( "素数个数是: " + count);
}
}
作者:
刘基军
时间:
2012-4-25 22:05
public static void main(String[] args) {
int count = 0;
for(int i=2;i<100;i++){
boolean b=false;
for(int j=2;j<=i-1;j++){ //从2开始,而不是1
if(i % j == 0) {
b=true;
break;
}
}
if(!b) {
count ++;
System.out.print(i+" ");
}
}
System.out.print( "素数个数是: " + count);
}
复制代码
作者:
王德南
时间:
2012-4-25 22:17
本帖最后由 王德南 于 2012-4-25 22:18 编辑
int count = 0;
for(int i=2;i<100;i++){
boolean b=false;
System.out.println("i="+i);//在这里加了一个打印i的语句你可以很清楚地看到i的值的变化
for(int j=1;j<=i-1;j++){ //这里要改为for(int j=2;j<=i-1;j++)
System.out.println("j="+j);//在这里加了一个打印j的语句你可以很清楚地看到j的值的变化,
//你会发现j的值总是为1所以这时候任何数除以1的
//余数都为0所以break就会跳出这个for循环,所以一直这样下去结果就会输出:0
//所以你上面的for语句要改为for(int j=2;j<=i-1;j++)
if(i % j == 0) {
b = false;
break;
}
else {
b = true;
}
}
if(b == true) {
count ++;
System.out.println(i );
}
}
复制代码
作者:
林德燚
时间:
2012-4-25 22:34
public static void main(String[] args) {
int count = 0;
for(int i=2;i<100;i++){
boolean b=false;
// for(int j=1;j<=i-1;j++){
// if(i % j == 0) {//错误在这,你这从1开始,每个都可以除摸0;
for(int j=1;j<=i;j++){
if(i % j == 0&&j!=1&&j!=i) {//在你基础上这样改就可以了,
b = false;
break;
}
else {
b = true;
}
}
if(b == true) {
count ++;
System.out.println(i );
}
}
System.out.print( "素数个数是: " + count);
复制代码
}
作者:
马浩
时间:
2012-4-25 22:54
判断i是否为素数,不应该是看在2与i/2之间是否有能将i整除的吗??如果没有,则i为素数,这 样一来楼主的for循环中的条件我就不 懂了
我改了一下
{
public static void main(String[] args)
{
int count = 0;
for(int i=2;i<=100;i++)
{
boolean b=true;
for(int j=2;j<=i/2;j++)//这个判断条件与楼主不同
{
if((i%j)==0)
{
b=false;
break;
}
}
if(b)
{
count++;
System.out.print(i);
System.out.print(" ");
}
//System.out.println();
}
System.out.println();
System.out.println("素数的个数是:"+count);
}
}
作者:
徐鑫
时间:
2012-4-25 23:31
运行了下。素数又叫质数(我们都说质数,还去百度了下素数...)
public class Test10 {
public static void main(String[] args) {
int count = 0;
for(int i=2;i<100;i++){
boolean b=false;
for(int j=1;j<=i-1;j++){
if(i % j == 0) {//
这里进行取余判断的时候应该从2开始,每个数除以1都没有余数- =!
b = false;
break;
}
else {
b = true;
}
}
if(b == true) {
count ++;
System.out.println(i );
}
}
System.out.print( "素数个数是: " + count);
}
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2