java质数代码(java中判断质数最快的方法)

Դ网易

ߣ整站优化

13

2021-11-03 09:30:20

经过一番艰苦的思想斗争,觉得自己不想学互联网,怀疑自己入错坑了!我想了很久,觉得头晕,不去想茶,不想吃;我不想想;

想着走路,想着上课,想着上课,想着睡觉,甚至还得想着拉屎,最后决定学安卓开发。无论我的选择是否正确,都没有正确的说法。对错都只是成功人士告诉我们的故事!至少我现在不后悔,以后也不会后悔,因为这是我的选择。

而且就算别人觉得我错了,那又怎么样呢?我不想再展示我的烂摊子。

现在我什么都不想要,什么都不说,什么都不做。全心全意学习这段时间;

我希望在时间里,当别人迷茫的时候,我能冷静地写下自己的故事,然后扔下笔尖,从容地离开,但没有人能理解我心中的精神,除非你亲身经历过,所以我不允许自己。

相信任何人,只要相信自己,没有人能阻止我,包括我自己。很多时候,你总是那个阻止你的人。如果你不能阻止自己,这个世界就不会害怕!

——————————————————————————————————————————————————————————————————————————

大学,大多靠自学,如果毕业后只学大纲的东西。那是浪费;

用这篇文章开始学习安卓的过程吧!

——————————————————————————————————————————————————————————————————————————-

学习安卓开发的java基础是必须的!

span style=" font-size :18 px;"span style=" font-size :14 px;"java求1-n之间素数的几种方法。

//1.传统的方法能从2x2-x-1中整除吗?

包文本;

导入Java . util . scanner;

公共类测试{

公共静态void main(String[]args){ 0

扫描仪输入=新扫描仪(系统输入);

int x;

x=in . nextint();

boolean isprime=true

for(int I=2;I=x;I){ 0

for(int j=2;j . I;j ) {

if(I % j==0){ 0

isprime=false

打破;

}

}

if(is prime)system . out . print(I " ");

isprime=true

}

//测试结果:100。

//2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97

//

}

}/span

/span

———————————————————————————————————————————————————————————————————————

span style=" font-size :18 px;"java求1-n之间素数的几种方法。

//2.改进方法从3中去掉偶数,如果每次加2都可以整除,则总共计算n/2次左右。

包文本;

导入Java . util . scanner;

公共类测试{

公共静态void main(String[]args){ 0

扫描仪输入=新扫描仪(系统输入);

int x;

x=in . nextint();

boolean isprime=true

for(int I=1;I=x;I){ 0

if(i==1 || (i % 2==0 i!=2))继续;//1和偶数,不用往下走。

for(int j=3;j . I;j=2){ 0

If(i% j==0) {//如果是2,则不进入子循环。

isprime=false

bachelor of religious education 宗教教育学士

ak;
  • }
  • }
  • if(isprime) System.out.print(i + ” “);
  • isprime = true;
  • }
  • // 测试结果: 100
  • // 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97
  • //
  • }
  • }
  • </span>
  • ——————————————————————————————————————————————————————————————————————————

    1. <span style=”font-size:18px;”>// 关于求1-n之间的素数用java实现的几种方法
    2. //3.改进方法 每个数只要除到sqrtx 即可
    3. package text;
    4. import java.util.Scanner;
    5. public class test {
    6. public static void main(String[] args) {
    7. Scanner in = new Scanner(System.in);
    8. int x;
    9. x = in.nextInt();
    10. boolean isprime = true;
    11. for(int i = 1;i <= x; i++) {
    12. if(i == 1 || (i % 2 == 0 && i != 2)) continue;
    13. for(int j = 3;j <= Math.sqrt(i);j += 2 ) {
    14. if(i % j == 0) {
    15. isprime = false;
    16. break;
    17. }
    18. }
    19. if(isprime) System.out.print(i + ” “);
    20. isprime = true;
    21. }
    22. // 测试结果: 100
    23. // 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97
    24. //
    25. }
    26. }</span>

    ———————————————————————————————————————————————————————————————————————————–

    1. <span style=”font-size:18px;”>// 关于求1-n之间的素数用java实现的几种方法
    2. //4.改进方法 判断是否可以被<x的素数整除
    3. package text;
    4. import java.util.Scanner;
    5. public class test {
    6. public static void main(String[] args) {
    7. Scanner in = new Scanner(System.in);
    8. int x;
    9. x = in.nextInt();
    10. int[] prime = new int[100];
    11. int cnt = 1;
    12. prime[0] = 2;
    13. boolean isprime = true;
    14. for(int i = 3; i <= x; i += 2) {
    15. for(int j = 0; j < cnt; j++) {
    16. if(i % prime[j] == 0) {
    17. isprime = false;
    18. break;
    19. }
    20. }
    21. if(isprime) prime[cnt++] = i;
    22. isprime = true;
    23. }
    24. for(int k = 0; k < cnt; k++) {
    25. System.out.print(prime[k] + ” “);
    26. }
    27. // 测试结果: 100
    28. // 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97
    29. //
    30. }
    31. }
    32. </span>

    ————————————————————————————————————————————————————————————————————————-5. 构造素数序列primes[i]: 2, 3, 5, 7, …

    由4的算法我们知道, 在素数序列已经被构造的情况下, 判断n是否为素数效率很高;

    但是, 在构造素数序列本身的时候, 是否也可是达到最好的效率呢?

    事实上这是可以的! — 我们在构造的时候完全可以利用已经被构造的素数序列!

    假设我们已经我素数序列: p1, p2, .. pn

    现在要判断pn+1是否是素数, 则需要(1, sqrt(pn+1)]范围内的所有素数序列,

    而这个素数序列显然已经作为p1, p2, .. pn的一个子集被包含了!

    1. // 关于求1-n之间的素数用java实现的几种方法
    2. //4.改进方法 构造素数表的方法
    3. <span style=”font-size:18px;”>package text;
    4. import java.util.Scanner;
    5. public class test {
    6. public static void main(String[] args) {
    7. boolean[] isprime = new boolean[100];
    8. for(int i = 0;i < isprime.length; i++)
    9. isprime[i] = true;
    10. for(int i = 2; i < isprime.length;i++) {
    11. if(isprime[i]){
    12. for(int k = 2; i * k < isprime.length;k++){
    13. isprime[i * k] = false;
    14. }
    15. }
    16. }
    17. for(int i = 2; i < isprime.length; i++)
    18. if(isprime[i]) System.out.print(i + ” “);
    19. // 测试结果: 100
    20. // 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97
    21. //
    22. }
    23. }
    24. </span>

    最后自己总结一下;如果用数组做的话构造素数表的方法,个人觉得并不可取,因为假如要求的是1-x的素数而x很大,,那么必然要使用一个超大的数组而素数只是占其中一小部分,所以浪费了很多的空间;

    2.建议采用第三种和第四种方法来做

    佭ϴý Ѷ Media8ý

    在线客服

    外链咨询

    扫码加我微信

    微信:juxia_com

    返回顶部