我的代码哪里出错了呀它不输出乐

题目内容:

我们认为2是第一个素数,3是第二个素数,5是第三个素数,依次类推。

现在,给定两个整数n和m,0<n<=m<=200,你的程序要计算第n个素数到第m个素数之间所有的素数的和,包括第n个素数和第m个素数。

注意,是第n个素数到第m个素数之间的所有的素数,并不是n和m之间的所有的素数。

输入格式:

两个整数,第一个表示n,第二个表示m。

输出格式:

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

上面的是问题 下面的是我的代码。不知道是哪个地方出错了什么都不输出
package zuoye;
import java.util.*;
public class 素数和 {

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 sum=0;
   while(0<n&&n<=m&&m<=200) {
       for(int i=n;i<=m;i++) {
           for(int j=2;j<i;j++) {
               if(i/j!=0) {
                   sum=sum+i;
               }
           }
       }
           
   }
   System.out.println(sum);
}

}

把while改成if就行了,因为在while循环里面,你没有改变n的值,所以就会一直循环执行里面的代码,执行不到最后的输出语句

不能输出,那就是停留在了while中,所以下面代码查一下问题

   while(0<n&&n<=m&&m<=200) {
   System.out.println(n);
   System.out.println(m);
       for(int i=n;i<=m;i++) {
           for(int j=2;j<i;j++) {
               if(i/j!=0) {
                   sum=sum+i;
               }
           }
       }
Scanner in=new Scanner(System.in);
         System.out.print("请输入第一个数n:");
          int n=in.nextInt();
          System.out.print("请输入第二个数m:");
          int m=in.nextInt();
          int sum=0;
          if(0<n&&n<=m&&m<=200) {
          for(int i=n;i<=m;i++) {
               boolean isShuShu = true;//判定i是否是素数
               for(int j=2;j<i;j++) {
                   if(i%j==0) {
                       isShuShu = false;
                      break;
                   }
               }
               if(isShuShu){
                   sum=sum+i;
               }
           }
               
       }
       System.out.println(n+"到"+"之间的素数之和为:"+sum);

不输出是你错误使用while变死循环了,也顺便改了你的逻辑的小问题

既然你的n和m代表的是第几个素数,又要求素数的和,为啥你的sum直接加i,i不是你的个数吗,我的思路是根据题目的范围,求出前200个素数,不多,算出来第200个也就1000多,放到数字了,0-199下标,根据n和m的值去数组里面取就是了

我感觉你题目都没看懂   说的是第n个到第m个的素数和   你求个n到m之间的所有素数和  还用while循环不跳出循环 一个字  绝