java判断一个数是否是素数(质数)
质数(prime number)又称素数,有无限个
质数定义为在大于1的自然数中,除了1和它本身以外不再有其他因数,这样的数称为质数。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
import java.util.Scanner; public class TestWork { public static void main(String[] args) { boolean isPrime = true ; Scanner sc = new Scanner(System.in); System.out.println( "请输入一个正整数" ); int num = sc.nextInt(); if (num > 0 ) { int k = ( int ) Math.sqrt(num); //k为num的正平方根,取整数 for ( int i = 2 ; i <= k; i++) { if (num % i == 0 ) { isPrime = false ; //不是素数 break ; } } } if (isPrime) { System.out.println(num + "是素数" ); } else { System.out.println(num + "不是素数" ); } } } |
输出1~1000之间的素数
思路
偶数肯定不是素数,所以递增的时候可以以奇数的形式递增,再在奇数中去掉非质数的数。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
public class TestWork { public static void main(String[] args) { boolean isPrime = true ; int PrimeCount= 0 ; for ( int i = 3 ; i <= 1000 ; i+= 2 ) { int k = ( int ) Math.sqrt(i); //k为num的正平方根,取整数 isPrime = true ; for ( int j = 2 ; j <= k; j++) { if (i % j == 0 ) { isPrime = false ; //不是素数 break ; } } if (isPrime) { PrimeCount++; System.out.print(i+ "\t" ); if (PrimeCount% 5 == 0 ){ System.out.println(); } } } } } |
java 求1-100之间的质数
质数定义:
质数又称素数。一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做质数;否则称为合数。
如:2,3,5,7,11…
1、质数实例一
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
//1-100之间的质数--------1 public class PrimeNumber { public static void main(String[] args) { for ( int i= 2 ;i<= 100 ;i++) { boolean flag= true ; for ( int j= 2 ;j<i;j++) { if (i%j == 0 ) { flag= false ; break ; } } if (flag) { System.out.println( "质数:i= " +i); } } } } |
2、质数实例二
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
//1-100之间的质数--------2 public class PrimeNumber { public static void main(String[] args) { for ( int i= 2 ;i<= 100 ;i++) { for ( int j= 2 ;j<=i;j++) { if (i%j== 0 && i!=j) { break ; } if (j==i) { System.out.println( "质数:i= " +i); } } } } } |
3、质数实例三
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
//1-100之间的质数--------3 public class PrimeNumber { public static void main(String[] args) { for ( int i= 2 ;i<= 100 ;i++) { int j= 2 ; while (i%j != 0 ) { j++; } if (j==i) { System.out.println( "质数:i= " +i); } } } } |
4、质数实例四
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
//1-100之间的质数--------4 public class PrimeNumber { public static void main(String[] args) { for ( int i= 2 ;i<= 100 ;i++) { int j= 2 ; for (;j<=i/ 2 ;j++) { if (i%j== 0 ) { break ; } } if (j==i/ 2 + 1 ) { System.out.println( "质数:i= " +i); } } } } |
5、质数实例五
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
public class PrimeNumber { public static void main(String[] args) { int count= 0 ; for ( int i= 2 ;i<= 100 ;i++) { int j= 2 ; for (;j<=( int )Math.sqrt(i);j++) { if (i%j== 0 ) { break ; } } if (j==( int )Math.sqrt(i)+ 1 ) { System.out.println( "质数:i= " +i); count++; } } System.out.println( "质数个数:count= " +count); } } |
6、质数实例六
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
public class PrimeNumber { public static void main(String[] args) { int count1 = 0 , count2 = 0 ; for ( int i = 2 ; i <= 100 ; i++) { for ( int j = 2 ; j <= Math.sqrt(i); j++) { if (i % j != 0 ) { //不能被整除累计一次 count1++; } } // 转为int的类型 int num2 = ( int ) Math.sqrt(i); //如果累计次数num2 - 1个数相等则为素数 if (count1 == (num2 - 1 ) { System.out.println( "质数: " + i); count2++; } //找到素数后count1再初始化为0 count1 = 0 ; } // 统计素数个数 System.out.println( "质数个数:count2= " +count2); } } |
以上为个人经验,希望能给大家一个参考,也希望大家多多支持服务器之家。
原文链接:https://blog.csdn.net/huanyinghanlang/article/details/78206603