A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 李波 黑马帝   /  2013-9-7 11:00  /  2582 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

1-100之间的素数的和。


8 个回复

倒序浏览
好难。求解。其他面试题目都是什么?
回复 使用道具 举报
楼主,我我也被你的第一题镇住了,请问素数是怎么东西?楼主是24期?视频还是现场面试?
回复 使用道具 举报
求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();
复制代码

评分

参与人数 1技术分 +1 收起 理由
赵宗荣 + 1

查看全部评分

回复 使用道具 举报
首先要知道,所谓素数就是除了能被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. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
赵宗荣 + 1

查看全部评分

回复 使用道具 举报
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;
        }
}

评分

参与人数 1技术分 +1 收起 理由
赵宗荣 + 1

查看全部评分

回复 使用道具 举报
我也不知道素数是什么
回复 使用道具 举报
这应该挺简单吧
回复 使用道具 举报
大神,卡壳不易啊
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马