十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
求1-N以内的所有素数,实现思路如下:
创新互联专注于让胡路网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供让胡路营销型网站建设,让胡路网站制作、让胡路网页设计、让胡路网站官网定制、小程序开发服务,打造让胡路网络公司原创品牌,更为您提供让胡路网站排名全网营销落地服务。
1、 得到1到n之间的素数,存到一个ArrayList集合。
2、判断一个数是不是素数:只能被1和本身整除
说明:从2开始除,不需要到n,也就是循环条件是 n 就可以,这之间只要被整除了,那么他就不是素数了。
3、设置主函数,运行 getPrimeNumberToN获取限定范围内的素数。
执行结果图:
扩展资料:
实现功能的编程事项:
1、模块化思想。
先拆分需求,先拆分先考虑怎么确定一个数是不是素数,然后再复用到所有。不能把方法堆到一起,否则无法复用代码。
2、注意注释。
就算是自己的测试代码,尽量写清楚注释,这样即使过了三个月,再看代码,也能清晰明了。不要觉得简单,就懒得注释。
3、注意参数命名。
从类名到方法名,再到变量名,都不能随意取名,关于这个命名,不要嫌弃长,重点是意思清楚明白。见名知意(语义化),是最好的。
质数又称素数。一个大于1的自然数,如果除了1和它自身外,不能被其他自然数整除的数;否则称为合数。根据算术基本定理,每一个比1大的整数,要么本身是一个质数,要么可以写成一系列质数的乘积;而且如果不考虑这些质数在乘积中的顺序,那么写出来的形式是唯一的。下面是一个java求100之内的素数简单示例。
public class test {
public static void main(String[] args) {
int i,n,k=0;
for (n = 3; n=100; n++) { //3~100的所有数
i=2;
while (in) {
if (n%i==0) break; //若能整除说明n不是素数,跳出当前循环
i++;
}
if (i==n) { //如果i==n则说明n不能被2~n-1整除,是素数
k++; //统计输出数的个数
System.out.print(i+ "\t ");
if (k %6==0) //每输出5个则换行
System.out.println();
}
}
}
}
import java.io.*; import java.util.Scanner; /** * * @author mr.chai 输入一个任意正整数,判断是否为素数 */ public class Test { public static void main(String[] args) { while (true) { int i = 0; try { Scanner sc = new Scanner(System.in); int num = sc.nextInt(); System.out.print("Please enter a number:"); for (i = 2; i = num; i++) { if (num % i != 0) continue; else break; } if (i == num) { System.out.println("是素数"); } else { System.out.println("不是素数"); } } catch (Exception e) { System.out.println("您输入的不是数字"); } } } }
求采纳
封装好的方法getPrimes(),以后你可以拿去用在其他的程序中
import java.util.ArrayList;
import java.util.List;
public class Primes {
public static void main(String[] args) {
// 求素数
int[] primes = getPrimes(100);
// 输出结果
for (int i = 0; i primes.length; i++) {
Integer prime = primes[i];
System.out.printf("%8d", prime);
if (i % 10 == 9) {
System.out.println();
}
}
}
/**
* 求 n 以内的所有素数
*
* @param n 范围
*
* @return n 以内的所有素数
*/
private static int[] getPrimes(int n) {
ListInteger result = new ArrayListInteger();
result.add(2);
for (int i = 3; i = n; i += 2) {
if (!divisible(i, result)) {
result.add(i);
}
}
int[] r = new int[result.size()];
for (int i = 0; i r.length; i++) {
r[i] = result.get(i);
}
return r;
}
/**
* 判断 n 是否能被整除
*
* @param n 要判断的数字
* @param primes 包含素数的列表
*
* @return 如果 n 能被 primes 中任何一个整除,则返回 true。
*/
private static boolean divisible(int n, ListInteger primes) {
for (Integer prime : primes) {
if (n % prime == 0) {
return true;
}
}
return false;
}
}
使用java编写判断自然数是否为素数的方式是,使用scanner来接受用户输入的数值,使用素数的算法,实例如下:
Scanner sr = new Scanner(System.in);
System.out.print("请输入a的值:");
int a = sr.nextInt();
boolean is = true;
if (a 1)
{
System.out.println(a + "不是质数,因为他小于一");
}
else
{
ListInteger list = new ArrayListInteger();
for (int i = 2; i a; i++)
{
if (a % i != 1 a % i != a)
{
if (a % i == 0){
is=false;
list.add(i);
}
}
}
if(is){
System.out.println("a是质数");
}else{
String yz="";
for (int i = 0; i list.size(); i++)
{
if (yz=="")
{
yz=yz+list.get(i);
}else{
yz=yz+","+list.get(i);
}
}
System.out.println("a不是质数,因为他含有因子"+yz);
}
}