java怎么求质数(运用布尔,数组)

java怎么求质数(运用布尔,数组),第1张

/**

 * 0-100:是:101个数字,不是100个

 * 0与1,不是质数也不是合数:

 * 以下代码写的有点冗余:只因为题目要求,布尔数组要参与运算!

 * 其实一个循环就可以解决的事!

 */

public class Prime {

public static void main(String[] args) {

int arr[]=new int[101],count=0//元素数组!

boolean[] brr=new boolean[101]//标记数组!

for(int i=0i<arr.lengthi++) //循环复制!

arr[i]=i

f:for (int i = 0 i<arr.length i++) {//判断!

if(i<2)continue f//跳过,0,1

for(int tem=item--!=2) 

if(i%tem==0) 

continue f

brr[i]=true//标记

}

for (int i = 0 i < brr.length i++) {//查看!

if(brr[i]!=false) {

count++

System.out.print(arr[i]+" ")

}

}

System.out.println("\r\n0-100质数共:"+count+"个!")

}

}

Java程序:

import java.util.Scanner

public class Test {

public static void main(String[] args) {

Scanner scan = new Scanner(System.in)

System.out.print("请输入一个整数:")

int number = scan.nextInt()

PrimeNumber pn = new PrimeNumber()

pn.setNumber(number)

pn.printAll()

}

}

class PrimeNumber {

protected int number

public void setNumber(int number) {

this.number = number

}

public int getNumber() {

return this.number

}

public boolean isPrimeNumber(int number) {

int k = (int)(Math.sqrt(number))

for(int i=2i<=ki++) {

if(number % i == 0) {

return false

}

}

return true

}

public void printAll() {

for(int i=2i<=numberi++) {

if(isPrimeNumber(i)) {

System.out.println(i)

}

}

}

}

运行测试:

请输入一个整数: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

因为质数是一个正整数不能被除了1和自身以外的数整除,就叫做质数(1不是质数)

所以根据定义从2到10000,每个数除以2到其自身减1的数,如果能被整除(等于0)则不是质数,否则就是质数

完整的Java程序如下(每句都加了注释)

public class SuShuHe{

public static void main(String[] args){

int sum=0,j//定义整型变量j,整型变量sum用于存放质数和,并赋sum初值0

for(int i=2i<=10000i++){//for_i循环从2到10000

for(j=2j<ij++) //for_j循环从2到i-1

if(i%j==0)//判断i是否能被j整除(余数等于0)

break//如果能跳出for_j循环

if(i==j){ //如果没有跳出for_j循环,那么for_j循环执行完时,j等于i,那么i就是质数

sum=sum+i//把质数加到求质数和的变量sum中

}

}

System.out.println("10000以内所有质数之和为:"+sum)//输出10000以内所有质数和

}

}


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/12071754.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-20
下一篇2023-05-20

发表评论

登录后才能评论

评论列表(0条)

    保存