锁定老帖子 主题:一道简单的Java面试题
精华帖 (0) :: 良好帖 (0) :: 隐藏帖 (3)
|
|
---|---|
作者 | 正文 |
发表时间:2011-09-07
liubey 写道 话说我一直不明白为嘛要比较到被比较数的平方,哪位给指点一下 谢谢
因为1个合数x可以写成2个数a,b的乘积,这2个数一个小雨合数的平方根的话,令一个数肯定大于平方根,否则会出现 a<sqrt(x) b<sqrt(x) a*b<x |
|
返回顶楼 | |
发表时间:2011-09-23
我觉得做web开发主要是分析业务逻辑和系统架构这些,光凭一个质数就判断一个人有点武断吧!
|
|
返回顶楼 | |
发表时间:2011-09-23
so easy.
|
|
返回顶楼 | |
发表时间:2011-09-23
最后修改:2011-09-23
穷举法,上次就被IBM问过这个问题。
boolean flag=true; for(int i=0;i<100;i++){ flag=true; for(int j=2;j<i/2;j++){ if(i%j==0){ flag=false; break; } if(flag) System.out.print(i+" "); } |
|
返回顶楼 | |
发表时间:2011-09-23
public static void main(String[] args) {
int c=0; for(int i=1;i<101;i++){ c=0; for(int k=1;k<=i;k++){ if(i%k==0){ c++; } } if(c<3) System.out.println(i); } } |
|
返回顶楼 | |
发表时间:2011-09-23
package src;
import java.math.*; public class Ss { public static void main(String args[]) { int sum=0; for (int i = 2; i <= 100; i++) { boolean z = true; for (int j = 2; j <= Math.sqrt(i); j++) { if (i % j == 0) { z = false; break; } else z = true; } if (z) { System.out.println(i); sum+=i; } } System.out.println(sum); } } |
|
返回顶楼 | |
发表时间:2011-09-23
fayedShih 写道 穷举法,上次就被IBM问过这个问题。
boolean flag=true; for(int i=0;i<100;i++){ flag=true; for(int j=2;j<i/2;j++){ if(i%j==0){ flag=false; break; } if(flag) System.out.print(i+" "); } 7 9 11 11 11 13 13 13 13 15 17 17 17 17 17 17 19 19 19 19 19 19 19 21 23 23 23 23 23 23 23 23 23 25 25 25 27 29 29 29 29 29 29 29 29 29 29 29 29 31 31 31 31 31 31 31 31 31 31 31 31 31 33 35 35 35 37 37 37 37 37 37 37 37 37 37 37 37 37 37 37 37 39 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 45 47 47 47 47 47 47 47 47 47 47 47 47 47 47 47 47 47 47 47 47 47 49 49 49 49 49 51 53 53 53 53 53 53 53 53 53 53 53 53 53 53 53 53 53 53 53 53 53 53 53 53 55 55 55 57 59 59 59 59 59 59 59 59 59 59 59 59 59 59 59 59 59 59 59 59 59 59 59 59 59 59 59 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 63 65 65 65 67 67 67 67 67 67 67 67 67 67 67 67 67 67 67 67 67 67 67 67 67 67 67 67 67 67 67 67 67 67 67 69 71 71 71 71 71 71 71 71 71 71 71 71 71 71 71 71 71 71 71 71 71 71 71 71 71 71 71 71 71 71 71 71 71 73 73 73 73 73 73 73 73 73 73 73 73 73 73 73 73 73 73 73 73 73 73 73 73 73 73 73 73 73 73 73 73 73 73 75 77 77 77 77 77 79 79 79 79 79 79 79 79 79 79 79 79 79 79 79 79 79 79 79 79 79 79 79 79 79 79 79 79 79 79 79 79 79 79 79 79 79 81 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 85 85 85 87 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 91 91 91 91 91 93 95 95 95 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 99 哥,这是运行你的结果 |
|
返回顶楼 | |
发表时间:2011-09-23
最后修改:2011-09-23
lai555 写道 fayedShih 写道 穷举法,上次就被IBM问过这个问题。
boolean flag=true; for(int i=0;i<=100;i++){ flag=true; for(int j=2;j<=i/2;j++){ if(i%j==0){ flag=false; break; } if(flag) System.out.print(i+" "); } 7 9 11 11 11 13 13 13 13 15 17 17 17 17 17 17 19 19 19 19 19 19 19 21 23 23 23 23 23 23 23 23 23 25 25 25 27 29 29 29 29 29 29 29 29 29 29 29 29 31 31 31 31 31 31 31 31 31 31 31 31 31 33 35 35 35 37 37 37 37 37 37 37 37 37 37 37 37 37 37 37 37 39 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 45 47 47 47 47 47 47 47 47 47 47 47 47 47 47 47 47 47 47 47 47 47 49 49 49 49 49 51 53 53 53 53 53 53 53 53 53 53 53 53 53 53 53 53 53 53 53 53 53 53 53 53 55 55 55 57 59 59 59 59 59 59 59 59 59 59 59 59 59 59 59 59 59 59 59 59 59 59 59 59 59 59 59 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 63 65 65 65 67 67 67 67 67 67 67 67 67 67 67 67 67 67 67 67 67 67 67 67 67 67 67 67 67 67 67 67 67 67 67 69 71 71 71 71 71 71 71 71 71 71 71 71 71 71 71 71 71 71 71 71 71 71 71 71 71 71 71 71 71 71 71 71 71 73 73 73 73 73 73 73 73 73 73 73 73 73 73 73 73 73 73 73 73 73 73 73 73 73 73 73 73 73 73 73 73 73 73 75 77 77 77 77 77 79 79 79 79 79 79 79 79 79 79 79 79 79 79 79 79 79 79 79 79 79 79 79 79 79 79 79 79 79 79 79 79 79 79 79 79 79 81 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 85 85 85 87 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 91 91 91 91 91 93 95 95 95 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 99 哥,这是运行你的结果 少了个括号, 在break;后面 加个‘}'。 你的穷举法有些重复,在第二个for循环时,只要j<=i/2就行了, 例如10,除数大于5就不用考虑了。 |
|
返回顶楼 | |
发表时间:2011-09-23
public class Zhishu {
public static void main(String[] args){ for(int i=1;i<100;i++){ //是否质数 boolean flag=true; for(int j=2;j<i;j++){ //i不是质数,遍历下一个i if(i%j==0){ flag=false; break; } } if(flag)System.out.println(i); } } } |
|
返回顶楼 | |
发表时间:2011-09-24
这个真的不难
|
|
返回顶楼 | |