呵呵,求质数首先要知道它在数学上的定义,即除了1和其本身之外,不被任何数整除.
创新互联专业为企业提供兴平网站建设、兴平做网站、兴平网站设计、兴平网站制作等企业网站建设、网页设计与制作、兴平企业网站模板建站服务,10多年兴平做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。
既然知道这个定义了,你还怕什么,照它的定义来就得了..
首先找2到这个数之间的数能否把这个数整除,如果有,就不是质数,没有,则就是质数了.
有根据数学上质数有关的一些原理,其实只需要判断2到其平方根之间的数能否把这个数整除就行了..
则用JAVA只需要解决4个问题
1接受输入
2求平方根
3循环判断
4输出
下面是程序代码:
import java.util.Scanner;
class Prime
{
int num; // 接受存放输入的数字
void inputNum()
{
Scanner sr = new Scanner(System.in);
if(sr.hasNextInt())
num = sr.nextInt();
}
void calcAndOutput()
{
for(int i=2;inum;i++)
{
int j;
int sqr = (int)Math.sqrt(i);
for(j=2;j=sqr;j++)
if(i%j==0) break;
if(jsqr)
{
System.out.print(i + " ");
}
}
System.out.println();
}
public static void main(String args[])
{
Prime p = new Prime();
p.inputNum();
p.calcAndOutput();
}
}
其实,建议去下个JDK帮助文档
因为质数是一个正整数不能被除了1和自身以外的数整除,就叫做质数(1不是质数)
所以根据定义从2到10000,每个数除以2到其自身减1的数,如果能被整除(等于0)则不是质数,否则就是质数
完整的Java程序如下(每句都加了注释)
public class SuShuHe{
public static void main(String[] args){
int sum=0,j;//定义整型变量j,整型变量sum用于存放质数和,并赋sum初值0
for(int i=2;i=10000;i++){//for_i循环从2到10000
for(j=2;ji;j++) //for_j循环从2到i-1
if(i%j==0)//判断i是否能被j整除(余数等于0)
break;//如果能跳出for_j循环
if(i==j){ //如果没有跳出for_j循环,那么for_j循环执行完时,j等于i,那么i就是质数
sum=sum+i;//把质数加到求质数和的变量sum中
}
}
System.out.println("10000以内所有质数之和为:"+sum);//输出10000以内所有质数和
}
}
参考代码如下:
package test;
public class Test {
public static void main(String[] args) {
int j;
for (int i = 2; i = 100; i++) // 1不是素数,所以直接从2开始循环
{
j = 2;
while (i % j != 0)
j++; // 测试2至i的数字是否能被i整除,如不能就自加
if (j == i) // 当有被整除的数字时,判断它是不是自身
System.out.println(i); // 如果是就打印出数字
}
}
}
扩展资料:
质数又称素数。一个大于1的自然数,除了1和它自身外,不能整除其他自然数的数叫做质数;否则称为合数。
Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。