黑马程序员技术交流社区

标题: 今天面试,第一道题卡壳了,哎 [打印本页]

作者: 李波    时间: 2013-9-7 11:00
标题: 今天面试,第一道题卡壳了,哎
1-100之间的素数的和。



作者: 雨的印记yp    时间: 2013-9-7 11:42
好难。求解。其他面试题目都是什么?
作者: 张聪珉    时间: 2013-9-7 12:22
楼主,我我也被你的第一题镇住了,请问素数是怎么东西?楼主是24期?视频还是现场面试?
作者: ℡跡....    时间: 2013-9-7 13:27
求1-100之间素数之和的代码
  1. bool flag = false;
  2.             int sum = 0;
  3.             Console.WriteLine("1-100的素数分别为:");
  4.             Console.Write(2 + " " + 3);
  5.             for (int i = 3; i < 100; i += 2)
  6.             {
  7.                 for (int j = 2; j <= Math.Sqrt(i); j++)
  8.                 {
  9.                     if (i % j == 0)
  10.                     {
  11.                         flag = false;
  12.                         break;
  13.                     }
  14.                     else
  15.                     {

  16.                         flag = true;
  17.                     }
  18.                 }
  19.                 if (flag)
  20.                 {
  21.                     Console.Write("  " + i);
  22.                     sum += i;
  23.                 }
  24.             }
  25.             Console.WriteLine();
  26.             Console.WriteLine("1_100之间素数的和为" + (sum + 5));
  27.             Console.ReadKey();
复制代码

作者: 七宝    时间: 2013-9-7 14:44
首先要知道,所谓素数就是除了能被1和本身整除外,不能有其他约数,1不是素数也不是约数,2即使素数也是约数,我们可以让这个数除以1和本身之间的中间 数,如果没有整除的就是素数
代码如下:

  1. public class Demo {

  2.         public static void main(String[] args) {
  3.                 int sum=0;
  4.                
  5.                 for(int i=2;i<=100;i++){// 从2开始
  6.                         for(int j=2;j<i;j++){
  7.                                 if(i==2)//如果i=2,就直接输出,因为2除了1和本身外没有中间数
  8.                                         sum=sum+i;
  9.                                 if(i%j!=0){
  10.                                         sum=sum+i;
  11.                                 }
  12.                         }
  13.                 }
  14.                
  15.                 System.out.println(sum);
  16.         }

  17. }
复制代码

作者: Bad_Boy    时间: 2013-9-7 14:52
class Test {
        public static void main(String[] args) {
                int temp = getSum(1, 100);
                System.out.println(temp);
        }
       
        /**
         * 求任意两个数之间的素数的和。
         * @param a 传入一个int类型的参数
         * @param b 传入一个int类型的参数
         * @return  sum素数的和
         */
        public static int getSum(int a, int b) {
                int y;
                int sum = 0;
                for (int x = a; x <= b; x++) {
                        //因为1不是素数,把1过滤掉
                        if (x == 1)
                                continue;
                        for (y = 2; y <= x - 1; y++) {
                                if (x % y == 0)
                                        break;
                        }
                        //是素数就累加
                        if (y >= x - 1)
                                sum += x;
                }
                return sum;
        }
}
作者: qiezhiyi    时间: 2015-1-3 19:56
我也不知道素数是什么
作者: 秦文强    时间: 2015-1-25 23:02
这应该挺简单吧
作者: kai2360    时间: 2015-3-4 14:03
大神,卡壳不易啊




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2