题目:判断101-200之间有多少个素数,并输出所有素数。
程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,
则表明此数不是素数,反之是素数。素数被利用在密码学上,所谓的公钥就是将想要传递的信息在编码时加入素数,编码之后传送给收信人,任何人收到此信息后,若没有此收信人所拥有的密钥,则解密的过程中(实为寻找素数的过程),将会因为找素数的过程(分解质因数)过久,使即使取得信息也会无意义。
代码:
import java.util.Scanner;
class PrimeNumber{
public int BeginNumber,EndNumber;
public PrimeNumber(int BeginNumber,int EndNumber){
this.BeginNumber=BeginNumber;
this.EndNumber=EndNumber;
}
public void getPrimeNumber(){
System.out.println(this.BeginNumber+"到"+this.EndNumber+"范围中的素数有:");
for(int i=this.BeginNumber;i<=this.EndNumber;i++){
int a=0;
//如果i能被除了1和其本身之外的数整除,count的值不等于0。当count等于0,i是素数
for(int j=2;j<i;j++){
if(i%j==0){
a++;
}
}
if(a==0){
System.out.println(i);
}
a=0;
}
}
}
public class 素数问题 {
public static void main(String[] args) {
System.out.print("请输入范围(例如:101 200):");
Scanner scanner=new Scanner(System.in);
int begin=scanner.nextInt();
int end=scanner.nextInt();
PrimeNumber primeNumber=new PrimeNumber(begin,end);
primeNumber.getPrimeNumber();
}
}
测试结果: