sinat_28203663 2015-06-05 09:43 采纳率: 100%
浏览 3318
已采纳

求第m个到第n个素数之间的素数和,求帮忙看下哪里错了 提取数组求和的时候总是在数组中出现0

public class All {
public static void main(String[] args) {
int a[] = new int[200];
//将前200个数中的素数提取出来放入数组a中
for(int i = 1 ; i < 200 ; i ++){
boolean isPrime = true;
for(int k = 2 ; k < i ; k ++){
if( i % k == 0){
isPrime = false;
break ;
}
}
if(isPrime){
a[i-1] = i;
System.out.println(a[i-1]); //打印确认
}
}

    //  输入两个数 m,n  求第m个素数到底n个素数之间的素数和
    Scanner small = new Scanner(System.in);
    Scanner large = new Scanner(System.in);
    int m = small.nextInt();
    int n = large.nextInt();
    int sums = 0 ;
    int suml = 0;
    int sum = 0;
    for(int i = 0 ; i < m ; i ++){
        sums += a[i];
        System.out.print(a[i]+"*");
    }
    for(int i = 0 ; i < n ; i ++){
        suml += a[i];
        System.out.print(a[i]+" ");
    }
    sum = suml - sums;
    System.out.println(sum);
}

}

  • 写回答

3条回答

  • JonsonJiao 2015-06-05 09:53
    关注

    加个变量控制一下就行了。

    public class All {
        public static void main(String[] args) {
            int a[] = new int[200];
            int index = 0;
            // 将前200个数中的素数提取出来放入数组a中
            for (int i = 1; i < 200; i++) {
                boolean isPrime = true;
                for (int k = 2; k < i; k++) {
                    if (i % k == 0) {
                        isPrime = false;
                        break;
                    }
                }
                if (isPrime) {
                    a[index++] = i;
                    System.out.println(a[index-1]); // 打印确认
                }
            }
            // 输入两个数 m,n 求第m个素数到底n个素数之间的素数和
            Scanner small = new Scanner(System.in);
            Scanner large = new Scanner(System.in);
            int m = small.nextInt();
            int n = large.nextInt();
            int sums = 0;
            int suml = 0;
            int sum = 0;
            for (int i = 0; i < m; i++) {
                sums += a[i];
                System.out.print(a[i] + "*");
            }
            for (int i = 0; i < n; i++) {
                suml += a[i];
                System.out.print(a[i] + " ");
            }
            sum = suml - sums;
            System.out.println(sum);
        }
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!
  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?