JAVA中,用开方法计算出1到任意整数段的素数,这利用了一个定义:如果一个数不是素数且不等于1,那么它的最小质因数小于等于他的平方根。
工具/材料
电脑一台
Eclipse
操作方法
01
第一步:先用Scanner赋值语句对要求的整数段进行定位。
Scanner in=new Scanner(System.in);//Scanner赋值语句标准格式
int x;//随便定义一个整数值来装定位值
System.out.println(" 请输入要求的素数范围:");//加入一个提示语句
x=in.nextInt();//从键盘输入定位值到x中
System.out.println(" 1到"+x+"内的素数有:");//加入一个提示语句
02
第二步:双重for循环与开方函数结合求素数。
int i,n;//定义两个整型变量
for(i=2;i<=x;i++)//外层for循环到x才停止
{
for(n=2;n<=(int)Math.sqrt(i);n++)
//核心语句:内层变量<=(int)Math.sqrt(外层变量)
{
if(i%n==0)
break;
//筛除合数
}
if(n>(int)Math.sqrt(i))//判断是否为素数
System.out.print(" "+i);//输出素数
}
03
完整程序展示:
import java.util.*;
public class Chord {
public static void main(String args[]){
Scanner in=new Scanner(System.in);
int x;
System.out.println(" 请输入要求的素数范围:");//加入一个提示语句
x=in.nextInt();
System.out.println(" 1到"+x+"内的素数有:");
int i,n;
for(i=2;i<=x;i++)
{
for(n=2;n<=(int)Math.sqrt(i);n++)
//核心语句:内层变量<=(int)Math.sqrt(外层变量)
if(i%n==0)break;
if(n>(int)Math.sqrt(i))
System.out.print(" "+i);//s
}
}
}
好了,以上就是大致内容了,(END)
*使用Scanner赋值语句别忘了头文件: import java.util.*;
*求值范围的大小跟定义类型有关。
声明:该文观点仅代表作者本人,天晴资讯网系信息发布平台,仅提供信息存储空间服务。