这是我写的一个求100到200以内的质数的JAVA小程序,在每次运行的时候都输出好多次同样的数,这是为什么呢?
public class Test3{
public static void main(String args[]){
for( int i=101; i<200; i+=2){
boolean f = true;
for(int j=2;j<i;j++){
if(i%j==0){
f = false;
break;
}
if(!f)
{continue;}
System.out.println(i);
}
}
}
}
public class Test3{
public static void main(String args[]){
for( int i=101; i<200; i+=2){
boolean f = true;
for(int j=2;j<i;j++){
if(i%j==0){
f = false;
break;
}
if(!f)
{continue;}
System.out.println(i);
}
}
}
}
if(!f)
{continue;}
System.out.println(i);
就不会执行了
public static void main(String args[]){
for( int i=101; i<200; i+=2){
boolean f = true;
for(int j=2;j<i;j++){
if(i%j==0){
f = false;
System.out.println(i);
break;
}
if(!f)
{continue;}}
}
}
}
public class Test3{
public static void main(String args[]){
for( int i=101; i<200; i+=2){
boolean f = true;
for(int j=2;(j<i/2 + 1)&&f;j++)
if(i%j==0) f = false;
if(!f) continue;
System.out.println(i);
}
}
}
这里面应该够全的
if(f) continue;
public class Test3
{
public static void main(String args[])
{
for( int i=101; i<200; i+=2)
{
boolean f = true;
for(int j=2;j<i;j++)
{
if(i%j==0)
{
f = false;
break;
} }
if(!f)
System.out.println(i);
}
}
}
public class Test3 {
public static void main(String[] args) {
t1();
} public static void t1() {
// 取100到200的每一个数i
for (int i = 100; i <= 200; i++) {
// f表示没有余数
boolean f = true;
// 取到的数依次除以2到i/2
for (int j = 2; j < i / 2; j++) {
// 如果余数等于0则不是质数
if (i % j == 0) {
f = false;
break;
}
}
if (f) {
System.out.print(" " + i);
}
} }
}
public class Test3
{
public static void main(String args[])
{
for( int i=101; i<200; i+=2)
{
boolean f = true;
for(int j=2;j<i;j++)
{
if(i%j==0)
{
f = false;
break;
} }
if(!f)
System.out.println(i);
}
}
}
for (int i = 101; i < 200; i += 2) {
boolean f = true;
for (int j = 2; j < i; j++) {
if(i % j != 0){
System.out.println(i);
break;
}
}
}
}
public class PrimeTest{
// 判断一个整数num是否是素数
public static boolean checkPrime(int num) {
if (num < 0)// 负数不是素数
{
return false;
}
if (num == 1 || num == 2)// 1和2是素数
{
return true;
}
for (int i = 2; i < Math.sqrt(num) + 1; i++) {
if (num % i == 0) {
return false;
}
}
return true;
} // 获取start——end间素数的个数,并打印出素数
public static int getPrimeNum(int start, int end) {
int sum = 0;
for (int i = start; i <= end; i++) {
if (checkPrime(i) == true)// 是素数
{
System.out.print(i + " ");
sum++;
}
}
return sum;
} public static void main(String args[]) {
int start = 100;
int end = 200;
int sum = getPrimeNum(start, end);
System.out.println("\n" + start + "~" + end + "间共有" + sum + "个素数!");
}
}
// 简单明了!!楼主还有什么不明白的吗?