重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
Java程序:
新荣网站建设公司创新互联,新荣网站设计制作,有大型网站制作公司丰富经验。已为新荣上千提供企业网站建设服务。企业网站搭建\成都外贸网站建设公司要多少钱,请找那个售后服务好的新荣做网站的公司定做!
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.print("请输入一个整数:");
int number = scan.nextInt();
PrimeNumber pn = new PrimeNumber();
pn.setNumber(number);
pn.printAll();
}
}
class PrimeNumber {
protected int number;
public void setNumber(int number) {
this.number = number;
}
public int getNumber() {
return this.number;
}
public boolean isPrimeNumber(int number) {
int k = (int)(Math.sqrt(number));
for(int i=2; i=k; i++) {
if(number % i == 0) {
return false;
}
}
return true;
}
public void printAll() {
for(int i=2; i=number; i++) {
if(isPrimeNumber(i)) {
System.out.println(i);
}
}
}
}
运行测试:
请输入一个整数:100
2
3
5
7
11
13
17
19
23
29
31
37
41
43
47
53
59
61
67
71
73
79
83
89
97
public class PrimeNumber {
/**
* 质数,只能被1和自身整除
* @param args
*/
public static void main(String[] args) {
for (int i = 100; i = 200 ; i++) {
/*
标识位:true表示质数,false表示非质数
假定每个数一开始都是质数
*/
boolean flag = true;
for (int j = 2; j i ; j++) {
/*
从2开始除,只要余数为0就表示这个数能被其他数整除
然后将标识位设置为false,然后跳出内层循环执行
*/
if (i % j == 0){
flag = false;
break;
}
}
/*
根据标识位来判定是否是质数,是的话就输出
*/
if(flag){
System.out.println("质数:" + i);
}
}
}
}
求1-N以内的所有素数,实现思路如下:
1、 得到1到n之间的素数,存到一个ArrayList集合。
2、判断一个数是不是素数:只能被1和本身整除
说明:从2开始除,不需要到n,也就是循环条件是 n 就可以,这之间只要被整除了,那么他就不是素数了。
3、设置主函数,运行 getPrimeNumberToN获取限定范围内的素数。
执行结果图:
扩展资料:
实现功能的编程事项:
1、模块化思想。
先拆分需求,先拆分先考虑怎么确定一个数是不是素数,然后再复用到所有。不能把方法堆到一起,否则无法复用代码。
2、注意注释。
就算是自己的测试代码,尽量写清楚注释,这样即使过了三个月,再看代码,也能清晰明了。不要觉得简单,就懒得注释。
3、注意参数命名。
从类名到方法名,再到变量名,都不能随意取名,关于这个命名,不要嫌弃长,重点是意思清楚明白。见名知意(语义化),是最好的。
/**
* 0-100:是:101个数字,不是100个;
* 0与1,不是质数也不是合数:
* 以下代码写的有点冗余:只因为题目要求,布尔数组要参与运算!
* 其实一个循环就可以解决的事!
*/
public class Prime {
public static void main(String[] args) {
int arr[]=new int[101],count=0;//元素数组!
boolean[] brr=new boolean[101];//标记数组!
for(int i=0;iarr.length;i++) //循环复制!
arr[i]=i;
f:for (int i = 0; iarr.length; i++) {//判断!
if(i2)continue f;//跳过,0,1;
for(int tem=i;tem--!=2;)
if(i%tem==0)
continue f;
brr[i]=true;//标记
}
for (int i = 0; i brr.length; i++) {//查看!
if(brr[i]!=false) {
count++;
System.out.print(arr[i]+" ");
}
}
System.out.println("\r\n0-100质数共:"+count+"个!");
}
}
1、质数,也叫素数,除了1和它本身以外不再有其他因数。
2、所有的质数,除了2,其它一定都是奇数。
具体实现:
public class PrimeTest {
public boolean isPrime(long num) {
if (num == 2) {
return true;
}
if ((num 1) == 0) {
return false;
}
// 循环次数
double centerNum = Math.sqrt(num);
for (int i = 3; i = centerNum; i += 2) {
if (num % i == 0) {
return false;
}
}
return true;
}
public static void main(String[] args) {
long start = System.currentTimeMillis();
PrimeTest primeTest = new PrimeTest();
int index = 10100;
int sum = 0; // 质数的数量
int number = 3; //
while (true) {
if (primeTest.isPrime(number)) {
sum++;
}
if (sum == index) {
break;
} else {
number += 2; // 因为i是从3开始的,每次+2就能忽略偶数。
}
}
System.out.println("大于2的第" + sum + "个质数" + (number));
System.out.println("消耗时间:" + (System.currentTimeMillis() - start));
}
}
运行结果: