用java程序求出1到10000之间质数的和,并说出为什么要这样编写。

用java程序求出1到10000之间质数的和,并说出为什么要这样编写。,第1张

因为质数是一个正整数不能被除了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以内所有质数和

}

}

/**

 * 虚锋笑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+"个!")

}

}

程序如好大下,希望有所帮助

public class Prime {

//判断质数

public static void isPrime(int num) {

int j = 2

for (j <= Math.sqrt(num)j++) {

if (num % j == 0) {

System.err.println(num + "不是质数!")

return

}

}

if (j >Math.sqrt(num)) {

System.err.println(num + "是质数!")

return

}

System.err.println(num + "不是质数!")

return

}

public static void main(String[] args) {

Scanner sc = new Scanner(System.in)

System.err.println("请输入数字:"陪袜滑)

int num = sc.nextInt()//芦腊接收输入

isPrime(num)//判断是否为质数

}

}


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

原文地址: http://outofmemory.cn/yw/12351549.html

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

发表评论

登录后才能评论

评论列表(0条)

保存