java求素数和,请教指错

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

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

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

输入样例:
2 4

输出样例:
15

import java.util.Scanner;

public class C3ex4 {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
    Scanner in = new Scanner(System.in);
    int n = in.nextInt();
    int m = in.nextInt();
    int x; // 200以内的素数;
    int count = 1; //素数排名第几个;
    int sum = 0; //总和
    int flag = 0; //标记合数,一旦出现大于0,则出现合数,则不算在排名内
    if (n == 1)
    {
        sum = 2;
    }
    for(x = 2; x <= 200; x++)
    {
        int w = 2;
        while (w < x)
        {
            if (x % w == 0)
            {
                flag++;
            }
            else
            {
                w++;    
            }           
        }
        if (flag == 0)
        {
            count++;
        }
        if (count >= n && count <= m)
        {
            sum = sum + x;
        }   
    }
    System.out.print(sum);
    in.close();
}
}

想知道这个错在哪里

2个回答

我觉得你的n和m的值是一样的
你输入1,他们都等于1,
你在输入2,他们都等于2

是200个素数哦,不是200。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问