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

问题描述

求第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);
}

}

解决方案

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

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);
    }
}

解决方案二:

出现0不正常吗,

 if(isPrime){//这里只有符合条件的才更新数组a
a[i-1] = i;//所以如果i是198是偶数,那a[197]就是0

当然,你写的代码效率就先不说,答案应该没问题。

解决方案三:

你这个是因为你的素数都放到数组里面了,不是素数的为0,而你取值的时候是没有考虑0的。你取得值有可能是0.

时间: 2024-08-03 10:56:30

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

求高手帮忙看下哪里错了,并帮忙改下,题目是编写一个程序,类名为CopyFile,实现文件的复制。程序的使用格式为 java CopyFile 原文件名目标文件名

问题描述 importjava.io.*;publicclassCopyFile{staticStringurl1=CopyFile;staticStringurl2=CopyFile;staticvoidmain(Stringargs[])throwsIOException{(newFile(url2)).mkdirs();File[]file=(newFile(url1)).listFiles();for(inti=0;i<file.length;i++){if(file[i].isfile

刚开始学c#几天,求大神帮忙看下哪里错了

问题描述 我做一个枚举的程序,输入数字,然后出来代表数字的颜色,但是一直有一个错误不知道怎么改.程序:namespaceConsoleApplication1{enumcolor:byte{red=1,orange=2,yellow=3,green=4,blue=5,indigo=6,purple=7,black=8,white=9}classProgram{staticvoidMain(string[]args){intmycolor=0;do{Console.WriteLine("pleas

java多线程问题 求各位大神帮忙看下

问题描述 java多线程问题 求各位大神帮忙看下 就是要创建100个线程,每个线程都对sum值进行加一,如果我注释掉sleep(1);的话就会输出0 没有注释掉就会正常输出1-100请问 这是为什么啊?谢谢. public class test1 { private static int sum=0; private static Object obj=new Object(); public static void main(String[] args) throws InterruptedE

线程-java server端发送数据给客户端出现问题,求高手帮忙看下!

问题描述 java server端发送数据给客户端出现问题,求高手帮忙看下! java server端发送数据给客户端出现问题,求高手帮忙看下! package com.zeph.multiclient; import java.io.*; import java.net.ServerSocket; import java.net.Socket; public class MultiThreadServer extends Thread { private Socket client; publ

页面-java web网上书店有个问题 求大神帮忙看下

问题描述 java web网上书店有个问题 求大神帮忙看下 前一个页面一个表单传值, 请输入收货地址: 后面在OrderServlet中处理 其中的数据库中的操作没有问题 但是连到OrderServlet中出现求大神帮忙!!!!! 解决方案 你点击继续看看什么效果啊,如果有问题就贴出来 解决方案二: 没有效果就是停在这个servlet了,而且数据库方法也没有实现 解决方案三: 数据库方法也没有实现

html-插入jstl标签报错,求大神帮忙看下,网上解决方案都是错的

问题描述 插入jstl标签报错,求大神帮忙看下,网上解决方案都是错的 com.neusoft.unieap.action.EAPActionServlet.process(EAPActionServlet.java:814) >> org.apache.jasper.JasperException: Validation error messages from TagLibraryValidator for c null: org.xml.sax.SAXParseException: Attr

c语言-求帮忙看下为什么程序调用了西沟函数导致程序整个不能运行

问题描述 求帮忙看下为什么程序调用了西沟函数导致程序整个不能运行 写说明一下代码,代码主要是要在控制台模拟浏览器对tab和网页前进后退的一些操作 再说明一下问题,问题在于brwosertab类和webinformation类的西沟函数,一旦在这两个类的西沟函数里面写上delete 指针名字:整个程序就不能运行了,最关键的是我不太明白为什么程序要调用这两个函数,因为我感觉我都是动态对象啊.最后说明一下,我很菜,只有一点java编程的经验,所以第一次应对c++我真的需要一些帮助.谢谢你们了! 解决方

jsp连接数据库一直报错,求帮忙看下,谢谢

问题描述 jsp连接数据库一直报错,求帮忙看下,谢谢 <%@page language=""java"" import=""java.util.*"" pageEncoding=""utf-8""%><%@page import=""java.sql.*""%><html><body><% St

app-跪求高手帮忙看下程序为什么android连接不到servlet上,谢谢大家了

问题描述 跪求高手帮忙看下程序为什么android连接不到servlet上,谢谢大家了 android客户端 package com.android.helloworld; import java.io.DataOutputStream; import java.io.IOException; import java.io.OutputStream; import java.net.HttpURLConnection; import java.net.MalformedURLException;