用JAVA写素数代码 素数用java表示

用java编程:输入一个正整数n,输出n以内的所有素数 。代码怎么写?public class HelloWorld {
public static void main(String[] args) {
System.out.println("请输入一个正整数n");
Scanner input = new Scanner(System.in);
int n = input.nextInt();
for (int i = 2; i = n; i++) // 1不是素数,所以直接从2开始循环
{
int j = 2;
while (i % j != 0) {
j++; // 测试2至i的数字是否能被i整除,如不能就自加
}
if (j == i)
//当有被整除的数字时,判断它是不是自身,若是,则说明是素数
{
System.out.println(i); // 如果是就打印出数字
}
}
}
}
求一个用java编写的1到100内的素数,并且每行输出5个素数public class Test {
public static void main(String[] args) {
int i, count = 0;
for(i=2; i=100; i++){
if(isPrimeNumber(i) == true){
count++;
System.out.printf("%6d", i);
if(count%5 == 0){
System.out.println();
}
}
}
//判断一个数是否是素数,若是,返回true , 否则返回false
public static boolean isPrimeNumber(int num){
int k = (int) Math.sqrt(num);
if(num == 2){
return true;
for(int i=2; i=k; i++)
if(num%i == 0)
return false;
return true;
}
}
扩展:
质数又称素数 。一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做质数;否则称为合数 。
质数的个数是无穷的 。欧几里得的《几何原本》中有一个经典的证明 。它使用了证明常用的方法:反证法 。具体证明如下:假设质数只有有限的n个 , 从小到大依次排列为p1,p2,……,pn,设N=p1×p2×……×pn,那么,
是素数或者不是素数 。
如果
为素数 , 则
要大于p1,p2,……,pn,所以它不在那些假设的素数集合中 。
如果 为合数 , 因为任何一个合数都可以分解为几个素数的积;而N和N+1的最大公约数是1,所以不可能被p1,p2,……,pn整除,所以该合数分解得到的素因数肯定不在假设的素数集合中 。因此无论该数是素数还是合数,都意味着在假设的有限个素数之外还存在着其他素数 。所以原先的假设不成立 。也就是说 , 素数有无穷多个 。
其他数学家给出了一些不同的证明 。欧拉利用黎曼函数证明了全部素数的倒数之和是发散的,恩斯特·库默的证明更为简洁,哈里·弗斯滕伯格则用拓扑学加以证明 。
java求素数代码求1-N以内的所有素数 , 实现思路如下:
1、 得到1到n之间的素数,存到一个ArrayList集合 。
2、判断一个数是不是素数:只能被1和本身整除
说明:从2开始除 , 不需要到n,也就是循环条件是n 就可以,这之间只要被整除了,那么他就不是素数了 。
3、设置主函数,运行 getPrimeNumberToN获取限定范围内的素数 。
执行结果图:
扩展资料:
实现功能的编程事项:
1、模块化思想 。
先拆分需求,先拆分先考虑怎么确定一个数是不是素数,然后再复用到所有 。不能把方法堆到一起 , 否则无法复用代码 。
2、注意注释 。
就算是自己的测试代码,尽量写清楚注释 , 这样即使过了三个月,再看代码,也能清晰明了 。不要觉得简单,就懒得注释 。
3、注意参数命名 。
从类名到方法名,再到变量名,都不能随意取名,关于这个命名,不要嫌弃长,重点是意思清楚明白 。见名知意(语义化),是最好的 。
【用JAVA写素数代码 素数用java表示】用JAVA写素数代码的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于素数用java表示、用JAVA写素数代码的信息别忘了在本站进行查找喔 。

推荐阅读