论坛首页 招聘求职论坛

一道简单的Java面试题

浏览 103232 次
精华帖 (0) :: 良好帖 (0) :: 隐藏帖 (3)
作者 正文
   发表时间:2011-09-07  
liubey 写道
话说我一直不明白为嘛要比较到被比较数的平方,哪位给指点一下 谢谢

因为1个合数x可以写成2个数a,b的乘积,这2个数一个小雨合数的平方根的话,令一个数肯定大于平方根,否则会出现

a<sqrt(x)
b<sqrt(x)
a*b<x
0 请登录后投票
   发表时间:2011-09-23  
我觉得做web开发主要是分析业务逻辑和系统架构这些,光凭一个质数就判断一个人有点武断吧!
0 请登录后投票
   发表时间:2011-09-23  
so easy.
0 请登录后投票
   发表时间: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+" ");
}
     
0 请登录后投票
   发表时间: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);
}

}
0 请登录后投票
   发表时间: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);

}
}
0 请登录后投票
   发表时间: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

哥,这是运行你的结果
0 请登录后投票
   发表时间: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就不用考虑了。
0 请登录后投票
   发表时间: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);
}
}
}
0 请登录后投票
   发表时间:2011-09-24  
这个真的不难
0 请登录后投票
论坛首页 招聘求职版

跳转论坛:
Global site tag (gtag.js) - Google Analytics