我想知道怎么样才能不重复输出素数,求大神帮忙回答

package project2;

import java.math.*;

public class Test3 {

public static void main(String[] args){

int sum=0;

for(int i=101;i<=200;i++){

for(int j=2;j<=i;j++){

if(i%Math.sqrt(j)!=0){

System.out.println(i);

}

}

}

System.out.println(sum);

}

}


雯子wenzi
浏览 1204回答 1
1回答

luofuxiang

素数描述为“不能只能被1和它本身整除的正整数”,楼主判断素数的条件好像有问题。这里给出了能够求出101-200之间所有素数并求和的代码,调试已通过,不知是否满足楼主要求。源代码:import java.math.*; public class Test3 {     public static void main(String[] args){     int sum=0;     for(int i=101;i<=200;i++){         int j=2;         for(;j<i;j++){             if(i%j==0) break;/*除了1和它本身之外还能被其它的书整除,表示该数i不为素数,跳出循环*/         }         if(j<i){/*如果是由于跳出循环执行这条语句的,则忽略此时的i,继续执行外循环*/             continue;         }else/*否则,打印出素数*/         {             System.out.print(i+", ");             sum+=i;         }     }     System.out.println();     System.out.println("101-200之间所有素数之和 = " + sum);     } }输出结果:101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199,  101-200之间所有素数之和 = 3167
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java