1.问题描述
输出指定要求的素数(质数)。
注意:一个大于1的正整数,如果除了1和它本身以外,不能被其它正整数整除,就叫素数或质数。
(1)定义isPrime方法用于判断一个数是否是素数(参数为整型,返回值为布尔类型)。
(2)定义outPrime方法用于输出指定数字以内的所有素数(参数为指定的数字,整型)
(3)主方法中测试(例如:outPrime (1000) 参数1000表示要输出1000以内所有素数)
import java.util.Scanner;
public class Sushu2 {
public boolean isPrime(int a){
if(a>1){
int jsq=0;//计数
for (int i = 1; i < a; i++) {
if(a%i0){//能整除,计数+1 双等号判断等于;
jsq++;
}
}if(jsq1){//当计数为1时,符合条件为素数
return true;//返回值为true
}else{
return false;//当计数大于1时,不是素数,返回值为false
}
}else{//当a小于等于1时不是素数,返回值false
return false;
}
}
public void outPrime(int a){
int jsq=0,b=0;//定义计数
for (int i = 2; i < a; i++) {
jsq=0;//计数赋初始值
for (int j = 1; j < i; j++) {
if(i%j0){//能整除,计数+1 双等号判断等于;
jsq++;
}
}
if(jsq1){//当计数等于1时,符合素数条件 双等号判断等于
System.out.print(i+"\t");//输出素数i,空格
b++;
if(b%10==0){//当b整除10时,换行
System.out.println();
}
}
}
}
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
Sushu2 dy=new Sushu2();//创建对象
System.out.println(“请输入一个数,判断是否为素数”);
int s1=sc.nextInt();//输入数
boolean js=dy.isPrime(s1);//调用返回值
System.out.println(js);//输出返回值
System.out.println(“请输入一个数,输出1至这个数的所有素数”);
int s2=sc.nextInt();//输入数
dy.outPrime(s2);//调用方法输出素数i
}
}