java 求1000以内的所有素数

判断i是不是素数。

首先,当i=2时,i是素数,直接输出。

当i=3到i=1000,如果i被2到i-1的数整除,则i不是素数,不输出。否则输出。

public class PrimeNumber {  
    public static void main(String[] args) {  
        int i,j;  
        for(i=1;i<=1000;i++){  
            if(i==1 || i==2){  
                System.out.println(i);  
                continue;  
            }  
            for(j=2;j<i;j++){         
                if(i%j==0)          
                    break;  
                if(j==i-1)  
                    System.out.println(i);  
            }
        }
    }
}

 

  • 14
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
### 回答1: 您好,以下是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。 ### 回答2: Java是一种很强大的编程语言,可以用来解决各种问题,包括素数素数是只能被1和自身整除的数,比如2、3、5、7等。为了解100以内素数,我们可以使用循环和判断语句来逐个判断每个数是否为素数。 首先,我们可以使用两个循环嵌套,外层循环控制数字从2到100的遍历,内层循环从2开始检查每个数字是不是素数。在内层循环中,我们使用取模运算符(%)来判断每个数字是否能被除1和自身以外的任何数整除。 具体的Java代码如下: ```java public class PrimeNumbers { public static void main(String[] args) { System.out.println("100以内素数:"); for (int i = 2; i <= 100; i++) { boolean isPrime = true; for (int j = 2; j < i; j++) { if (i % j == 0) { isPrime = false; break; } } if (isPrime) { System.out.print(i + " "); } } } } ``` 上述代码中,我们使用一个布尔变量isPrime来判断当前数字是否为素数。如果在内层循环中找到了一个能整除当前数字的数,就将isPrime设置为false,并立即跳出内层循环。如果在内层循环结束后isPrime仍然为true,则说明当前数字是素数,将其输出。 运行上述代码,控制台将会输出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。 ### 回答3: 100以内素数可以通过筛选法来实现。先定义一个大小为100的布尔数组,用来表示数字是否为素数。初始时,将所有数字都标记为素数。然后从2开始遍历到100,如果某个数字是素数,则将它的倍数都标记为非素数。具体步骤如下: 1. 创建一个长度为101的布尔数组`isPrime`,并将所有元素初始化为`true`。数组下标表示数字,布尔值表示是否为素数。 2. 从2开始遍历到100,对于每个数字: - 如果`isPrime[i]`为`true`,则将`i`的倍数从`i*2`开始,递增`i`,标记为非素数。具体代码为: ```java for (int j = i * 2; j <= 100; j += i) { isPrime[j] = false; } ``` 3. 遍历完毕后,`isPrime[i]`为`true`的数字`i`即为100以内素数。 最后将找到的素数打印出来即可。完整代码如下: ```java public class PrimeNumbers { public static void main(String[] args) { boolean[] isPrime = new boolean[101]; for (int i = 2; i <= 100; i++) { isPrime[i] = true; } for (int i = 2; i <= 100; i++) { if (isPrime[i]) { for (int j = i * 2; j <= 100; j += i) { isPrime[j] = false; } } } System.out.println("100以内素数有:"); for (int i = 2; i <= 100; i++) { if (isPrime[i]) { System.out.print(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 ``` 通过筛选法,我们可以得100以内的所有素数

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值