JAVA:输出1-100之间的所有质数,写出一种可用算法步骤,开头已给出

public class Getkey {
public int[] getPrime(){
——————(代码)————
}
}
尽量优化算法,我的想法是除判断是否为质数以外,循环避开所有偶数,但是不知道这怎么实现

从1到50循环
然后让每一个数循环除23456789
如果这8次除的结果都不是整数或者=1,那么为质数
如果这8次除的结果有整数且不等于1,那么为合数,跳出此次循环
进行下一循环
算法不是最好,不过简单易懂
希望有帮助
温馨提示:内容为网友见解,仅供参考
第1个回答  2018-07-07
//既然返回的是int数组那我就返回数组吧,其实用集合更好
//不过既是质数又是偶数的,只有2吧

public static void main(String[] args) {
  int []a = getPrime();
 }
 
 private static int[] getPrime() {
  
  int []prime = new int[100];
  int index = 0;      //记录数组下标
  for (int i = 2; i <= 100; i++) {
   int temp = 0;     //记录能被整除的次数
   for (int j = 2; j < i; j++) {
    if (i%j==0) {    //能被第三个数整除,不是素数
     temp++;     //能被整除次数+1
    }
   }
   if ((temp==0) && (i%2!=0)) { //没有能被整除的第三个数(素数)  并且不能被2整除(不是偶数)
    prime[index] = i;
    index++;     //下标+1
   }
  }
  
  for (int i = 0; i < prime.length; i++) {
   System.out.println(prime[i]);
  }
  
  return prime;
 }

第2个回答  2018-07-07
月夜(刘方平)
相似回答