因为质数是一个正整数不能被除了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)//判断是否为质数
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)