java程序1到200的质数。代码如下
答案:4 悬赏:40 手机版
解决时间 2021-01-17 19:28
- 提问者网友:你挡着我发光了
- 2021-01-16 23:23
java程序1到200的质数。代码如下
最佳答案
- 五星知识达人网友:大漠
- 2021-01-16 23:45
你的用的算法判断逻辑是没错,但是效率太低,而且重点是你的sum是int数据类型,乘积累积到一定的数值时会发生溢出,如果你懒得换算法的话,可以把sum改成double类型就行了。
全部回答
- 1楼网友:舊物识亽
- 2021-01-17 01:41
3楼 楼主明显还是初学者 ,未必看的懂你写的,估计集合都还没学过呢 , 对于新手来说 加个标记最容易理解了,就像1楼的写法
- 2楼网友:毛毛
- 2021-01-17 01:05
一个好的算法,要经的起推敲,不要只求结果import java.util.ArrayList;
import java.util.List;
public class Primes {
public static void main(String[] args) {
// 求素数
List
// 输出结果
for (int i = 0; i < primes.size(); i++) {
Integer prime = primes.get(i);
System.out.printf("%8d", prime);
if (i % 10 == 9) {
System.out.println();
}
}
}
private static List
List
result.add(2);
for (int i = 3; i <= n; i += 2) {
if (!divisible(i, result)) {
result.add(i);
}
}
return result;
}
private static boolean divisible(int n, List
for (Integer prime : primes) {
if (n % prime == 0) {
return true;
}
}
return false;
}
}
- 3楼网友:零点过十分
- 2021-01-16 23:59
看起来是溢出,因为素数的61时候,sum的值会可能大于它的最大范围的//程序修改
public class Computer {
public static void main(String[] args){
//求1到200的质数
for(int i=2;i<201;i++) {
int sum=0;
for(int j =2;j if(i%j==0){
sum = 1;
break;
}
}
if(sum==0){
System.out.println(i+"是质数");
}
}
}
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯