java 定义并调用函数prime(m) 统计并输出m和n之间的素数的个数以及这些素数的和

2025-04-27 10:52:29
推荐回答(2个)
回答1:

lz,我稍微动了下你的代码:

public static void main(String args[]) {
int ri, repeat;
int i, m, n;
System.out.print("请输入执行次数:");
Scanner in=new Scanner(System.in);
repeat=in.nextInt();
for(ri=1; ri<=repeat; ri++){
int count=0,sum=0;
System.out.println("请指定范围:"+"\n"+"从:");
m=in.nextInt();
System.out.println("到:");
n=in.nextInt();
System.out.println(m+"-------------"+n+"之间的素数有:"+"\n");
for(int j=m;j<=n;j++)
{

if(prime(j)!=-1)
{
System.out.println(j);
count++;
sum+=j;
}
}
System.out.println("count="+count+", sum="+sum);
}

}

/*
* 这个是检测是不是素数的方法
*/

static int prime(int m)
{
int i=0,j;

for (j = 2; j <= m/2; j++) {
if (m % j == 0)
break;
}
if (j > m/2&&m!=1){
i=m;
}else{
i=-1;
}
return i;
}

回答2:

import java.util.Scanner;

public class Test50005 {
public static void main(String args[]) {
int ri, repeat;
int count, i, m, n, sum;
Scanner in = new Scanner(System.in);
repeat = in.nextInt();
for (ri = 1; ri <= repeat; ri++) {
m = in.nextInt();
n = in.nextInt();
m(m, n);
}
}

private static void m(int m, int n) {
// TODO Auto-generated method stub
int total = 0;
int sum = 0;
boolean f = true;
if (m == 1) {
m = 2;
}
for (int i = m; i <= n; i++) {
f = true;
for (int j = 2; j <= i / 2; j++) {
if (i % j == 0) {
f = false;
break;
}
}
if (f == true) {
total++;
sum += i;
System.out.println(i);
}

}
System.out.println("count=" + total + "," + "sum=" + sum);
}
}