Eratosthenes筛选求质数的方法是什么

86次阅读
没有评论

共计 1571 个字符,预计需要花费 4 分钟才能阅读完成。

这篇文章主要介绍“Eratosthenes 筛选求质数的方法是什么”,在日常操作中,相信很多人在 Eratosthenes 筛选求质数的方法是什么问题上存在疑惑,丸趣 TV 小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Eratosthenes 筛选求质数的方法是什么”的疑惑有所帮助!接下来,请跟着丸趣 TV 小编一起来学习吧!

import java.util.Scanner;
public class Eratosthenes { static void getPrimes(int num){ int []arr = new int[num +1];// 长度为 11 的数组, 能够存下表为 0 -10 的数组, 所以取 10 以内的数组, 需要申请 11 长度的数组
 for (int i = 1; i  = num; i++){ arr[i] = i;
 }
 arr[1] = 0;// 1 不是素数, 排除 1
 for (int i = 2; i   Math.sqrt(num); i++){ for (int j = i+1; j   num; j++){ if (arr[j] != 0   arr[j]%i == 0){ arr[j] = 0;
 }
 }
 }
 for (int i = 0; i   num; i++){ if (arr[i] != 0){ System.out.printf(arr[i]+ \t 
 }
 }
 }

 public static void main(String[] args) { Scanner scanner = new Scanner(System.in);  System.out.printf( 请输入查询值:  int num = scanner.nextInt();  getPrimes(num);
 static boolean isCheck(int x){ for (int i = 2; i   x; i++){// for (int i = 2; i  = Math.sqrt(x); i++){ if (x % 2 == 0){  return false;  }  }  return true;  }  public static void main(String[] args) { Scanner scanner = new Scanner(System.in);  int x = scanner.nextInt();  System.out.println(isCheck(x));  }  * 2 是素数,1 不是素数  *  *  排除异常树  * if(n   2) return false;  *  *  偶数一定不适素数  * if(n%2==0) return false;  *  *  定理:  如果 n 不是素数,  则 n 有满足 1  d =sqrt(n) 的一个因子 d.   证明:  如果 n 不是素数,  则由定义 n 有一个因子 d 满足 1  d  n.   如果 d 大于 sqrt(n),  则 n / d 是满足 1  n/d =sqrt(n) 的一个因子.  sqrt() 是开方, 开方的两个数是相等的,4*4=14, 如果一个数大约平方根, 那么另一个数一定小于平方根, 才能满足二者的乘积等于两个平方根的积
  素数,又称质数,在一个大于 1 的自然数中,除了 1 和此整数自身之外,不能被其他自然数整除的数。  比 1 大但不是素数的数称为合数。 1 和 0 既不是素数,也不是合数。  算术基本定理证明每个大于 1 的正整数都可以写成素数的乘积,并且这种乘积的形式是唯一的。
 */

到此,关于“Eratosthenes 筛选求质数的方法是什么”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注丸趣 TV 网站,丸趣 TV 小编会继续努力为大家带来更多实用的文章!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-08-16发表,共计1571字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)