寻找一组数组中的“素数”并输出

又是素数,不知道素数可以理解一下

点击了解什么是素数?

【问题描述】

定义静态方法findPrime(int []arr),找出数组arr中的全部素数。

素数也称质数,一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数。

注意:你定义main函数的写法如下,不要修改main函数中的代码,否则会扣分!

public static void main(String[] args) {

  int arr[]= {3,5,7,8,10,12,35,37,4583,8457};

  findPrime(arr);

}


【输入形式】

无输入
【输出形式】

arr数组中的全部素数
【样例输入】


【样例输出】

3

5

7

37

4583

代码如下:

public class App2 {
    public static void main(String[] args) {

        int arr[]= {3,5,7,8,10,12,35,37,4583,8457};
      
        findPrime(arr);
      
      }



    public static void findPrime(int arr[]){
for(int a=0;a<arr.length;a++){
int ss=2;
//定义ss为2,因为下面循环不考虑1和这个数本身;也就是arr[a]-1和b>1
for(int b=arr[a]-1;b>1;b--){
    
if(arr[a]%b==0){
       //这里的意思就是,如果一个数能被除自己和1整除,
       //它就不是素数,比如这个数是9,那么它能被 1<x<9以内某个整除就是不是素数,什么是整除:并不是说除直至到0,这个数只要能被x除得到一个整数就行
      //这里就是直接跳出循环,判断数组中下一个数
       break;
}else{
//这里相加看看最后等不等于判断的这个数
//因为比如说6 {6/5  6/4 6/3 6/2} :只要2个不被整除  有这几种情况,这种就不是质素,最后相加为2+1+1=4
//而7 {7/6  7/5 7/4 7/3 7/2}:5个都不被整除  有这几种情况,这种就不是质素,最后相加为2+5=7

ss+=1;
}

}

//循环结束,是素数就直接输出;

if(ss==arr[a]){
System.out.println(ss);
    
}

 }



      }



   






      



}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值