黑马程序员技术交流社区

标题: 一道笔试题,调试了很久才写出来,还需要进步啊! [打印本页]

作者: 夏木南生    时间: 2015-10-7 21:59
标题: 一道笔试题,调试了很久才写出来,还需要进步啊!
  1. package com.zsn.test1007;

  2. import java.util.Scanner;

  3. /*
  4. * 我们认为2是第一个素数,3是第二个素数,5是第三个素数,依次类推。
  5.                          现在,给定两个整数n和m,0<n<=m<=200,
  6.                          你的程序要计算第n个素数到第m个素数之间所有的素数的和,包括第n个素数和第m个素数。

  7.         输入格式:
  8.         两个整数,第一个表示n,第二个表示m。

  9.         输出格式:
  10.         一个整数,表示第n个素数到第m个素数之间所有的素数的和,包括第n个素数和第m个素数。

  11.         输入样例:
  12.         2 4

  13.         输出样例:
  14.         15
  15. *
  16. *
  17. */
  18. public class CalcZhiShu {
  19.         public static void main(String[] args) {
  20.                 int sum=0;   //所求的素数的和
  21.                 int n,m;     //输入的2个数(n是第一个   m是第二个)
  22.                 int mark =1;   //记录第几个素数
  23.                 System.out.println("请输入第一个数:");
  24.                 Scanner sc =new Scanner(System.in);
  25.                 n =sc.nextInt();
  26.                 System.out.println("请输入第二个数:");
  27.                 Scanner sc1 =new Scanner(System.in);
  28.                 m =sc.nextInt();
  29.                 if(n==1) sum+=2;   
  30.                 boolean IsZhiShu =false;
  31.                 for(int i=2;;i++){
  32.                 IsZhiShu=true;
  33.                                 if(mark>m){
  34.                                         break;
  35.                                 }
  36.                                 for (int j = 2;j<i; j++) {
  37.                                         if(i%j==0){
  38.                                                 IsZhiShu=false;
  39.                                                 break;
  40.                                         }
  41.                                        
  42.                                 }
  43.                                 if(IsZhiShu==true){
  44.                                        
  45.                                         if(mark>=n){
  46.                                                 sum+=i;
  47.                                                
  48.                                         }
  49.                                         mark++;
  50.                             }
  51.                        
  52.                         }
  53.                         System.out.println(n+"到"+m+"之间的素数和是:"+sum);

  54.         }
  55. }
复制代码


1.jpg (33.5 KB, 下载次数: 11)

输出

输出

作者: 夏木南生    时间: 2015-10-7 22:01
输出应该是第二个到第五个素数的和...




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