锁定老帖子 主题:一道简单的Java面试题
精华帖 (0) :: 良好帖 (0) :: 隐藏帖 (3)
|
|
---|---|
作者 | 正文 |
发表时间:2011-04-10
zhangyang6380006 写道 LZ您开玩笑呢吧,敢要这么多这个题目都没做出来?我写个试试
for(int i=1;i<100;i++) { if(i % 2) == 1) system.out.println(i+" 是质数"); else break; } 也不知道对不对,没测 2算质数吧,9难道也是质数。。。 |
|
返回顶楼 | |
发表时间:2011-04-10
MD那么难的题目,没20K,别找我。。。。
|
|
返回顶楼 | |
发表时间:2011-04-10
最后修改:2011-04-10
public static void main(String[] args) { // TODO Auto-generated method stub List<Integer> ii = new ArrayList<Integer>(); for(int i=2;i<100;i++) if(matches(i,ii))//如果是质数 ii.add(i); for(Integer a : ii) System.out.println(a); } private static boolean matches(int i,List<Integer> ii) { // TODO Auto-generated method stub if(i == 2)//这里已经保证ii不会为空 return true; for(int a : ii){ if(i%a == 0) return false; } return true; } |
|
返回顶楼 | |
发表时间:2011-04-10
我快毕业了~心理有底了。。。。。
|
|
返回顶楼 | |
发表时间:2011-04-10
已经无力吐槽了,连奇数和质数都能分不清,费马表示压力巨大。。。。。
jhcfe 写道 zhangyang6380006 写道 LZ您开玩笑呢吧,敢要这么多这个题目都没做出来?我写个试试
for(int i=1;i<100;i++) { if(i % 2) == 1) system.out.println(i+" 是质数"); else break; } 也不知道对不对,没测 2算质数吧,9难道也是质数。。。 |
|
返回顶楼 | |
发表时间:2011-04-10
话说我一直不明白为嘛要比较到被比较数的平方,哪位给指点一下 谢谢
|
|
返回顶楼 | |
发表时间:2011-04-10
晕,
我给个思路吧! 计算i是否是质数只需要用i去除i之前的质数判断 代码如下: //获得1-i之间的所以质数 private List<Integer> getPrime(int number){ List<Integer> primes =new ArrayList<Integer>(); primes.add(2); for(int i=3;i<=number;i++){ if(isPrime(primes, i)){ primes.add(i); } } return primes; } //primes 是i之前的所有质数集合,i是需要判断的数 private boolean isPrime(List<Integer> primes,int i) { for (Integer prime : primes) { if(i%prime==0){ return false; } } return true; } |
|
返回顶楼 | |
发表时间:2011-04-10
本人数学系,对你8k不感兴趣。
我给的答案是计算量最小的了。 gglu兄和我的答案相同,不好意思,没看回帖,重复了。 |
|
返回顶楼 | |
发表时间:2011-04-10
楼主,你得先给人家解释什么是素数
多年不碰数学,难免忘记 |
|
返回顶楼 | |
发表时间:2011-04-10
最后修改:2011-04-14
public class TestZHISHU { public static void zs(int n) { for (int i = 3; i <= n; i += 2) { boolean iszs = true; for (int j = 2; j <= Math.sqrt(i); j++) { if (i % j == 0) { iszs = false; break; } } if (iszs) { System.out.print(i + " "); } } } 有待提高.. |
|
返回顶楼 | |