public class Demo { public static void main(String[] args) {
//打印输出50以内的所有素数
for(int i = 2;i <=50;i++){
for(int j = 2;j <= i/2;j++){
if(i % j == 0){
break;
}
if(j > i/2){
System.out.println(i + "是素数");
}
}
}
}
}
//打印输出50以内的所有素数
for(int i = 2;i <=50;i++){
for(int j = 2;j <= i/2;j++){
if(i % j == 0){
break;
}
if(j > i/2){
System.out.println(i + "是素数");
}
}
}
}
}
public class Demo { public static void main(String[] args) {
//打印输出50以内的所有素数
boolean f = true;
for(int i = 2;i <=50;i++){
f=true;//假设每一个都是
for(int j = 2;j <= i/2;j++){
if(i % j == 0){
//到这里表示不是素数
f=false;
break;
}
}
if(true){
System.out.println(i + "是素数");
}
}
}
}打印的位置不太对
if(i % j == 0){
break;
}
if(j > i/2){
System.out.println(i + "是素数");
}
} 这里 j不可能会大于i/2啊
int j=0;
for(int i = 2;i <=50;i++){
for(j = 2;j <= i/2;j++){
if(i % j == 0){
break;
}
}
if(j > i/2){
System.out.println(i + "是素数");
}
}
}
}
if(j > i/2){
System.out.println(i + "是素数");
} 放到内层循环的外面就可以了,
并且要把int j定义在主方法中
//打印输出50以内的所有素数
for(int i = 2;i <=50;i++){
for(int j = 2;j <= i/2;j++){
if(i % j == 0)
break;
}
if(j > i/2)
System.out.println(i + "是素数");
}
}
}
搞那么多括号干吗,打印的那段代码放错位置了,要等内循环完了才能进行判断啊!
//检验是否是素数的方法checkPrime(int a),a为要判断的数
public boolean checkPrime(int a){
boolean b = true;
//如果是1,排除
if(a == 1){
b = false;
}
//用a除以所有比它小的数(除了1),如果能整除,返回不是素数
for(int i=2;i<a;i++){
if(a%i == 0){
b = false;
break;
}
}
return b;
}
public class Demo { public static void main(String[] args) {
//打印输出50以内的所有素数
for(int i = 2;i <=50;i++){
boolean b = true;//判断当前i是否为素数的布尔值b,默认为是。
for(int j = 2;j <= i/2;j++){
if(i % j == 0){
b = false;//如果可以除尽,说明不是。
break;
}
}
if(b){
System.out.println(i + "是素数");//是就输出
}
}
}
}你原来那个在for(int j = 2;j <= i/2;j++){}里是不可能出现j > i/2的,o(╯□╰)o
public static void printPrimeNumber() {
int count = 50;
System.out.println("1到" + count + "以内的质数有:");
// 因为1既不是质数也不是合数,所以从2开始判定。
for (int i = 2; i < count; i++) {
boolean b = true;
for (int j = 2; j < i; j++) {
// for循环第一次:判断出2是质数。
// for循环排除情况:除了它自身和1的乘积以外,能表示为其它任何2个正整数的乘积。
if (i % j == 0) {
b = false;
break;
}
}
if (b) {
System.out.print(i + "\t");//
}
}
}