java 求最大素数 哪里出错啦???

来源:百度知道 编辑:UC知道 时间:2024/09/22 17:27:03
public static int maxPrime(int k)
{
int t=0;
for(int i=2;i<=k;i++)
{
for(int j=2;j<i;j++)
{
if(i%j==0)
{
break;
}
}
continue;
t=i;
}
return t;
}

在第一个for循环中的倒数第二行,如果执行了continue,后面的那句t=i就永远都不会执行了。而且求最大素数应该从3开始,因为2既不是素数也不是合数

public static int maxPrime(int k) {
int t = 0;
for (int i = 3; i <= k; i++) {
int j;
for (j = 2; j < i; j++) {
if (i % j == 0) {
break;
}
}
if (j == i)
t = i;
}
return t;
}

我给你个全的代码,输入k,输出k以内的最大素数;
package cn.jhf;

import java.io.BufferedReader;
import java.io.InputStreamReader;

public class Test1 {

public static int maxPrime(int k) {
int t = 0,j;
for (int i = 2; i <= k; i++) {
for (j = 2; j < i; j++) {
if (i % j == 0) {
break;
}
}
if(j==i)
{
if(t<i)
t=i;
}

}
return t;
}
public static void main(String[] args) {
BufferedReader bf=new BufferedReader(new InputStreamReader(System.in));