最近刚开始接触算法,把每天学到的和写出出来的代码做一个记录。
*随机输入一个数,判断是不是素数
public class isPrime {
public static void main(String[] args) {
Scanner input =new Scanner(System.in);
System.out.print("请输入要判断的自然数:");
int a=input.nextInt();
System.out.print(a+"是一个素数的判断结果为:"+isPrime(a));
}
//判断一个数是否为素数的方法
public static boolean isPrime(int a){
boolean flag=true;
if(a <2 ){
flag=false;
}
for(int i=2;i*i<=a;i++){
if(a % i==0){
flag=false;
}
}
return flag;
}
}
怎么用牛顿迭代法求平方根
假设a。欲求a的平方根,首先猜测一个值X1=a/2,然后根据迭代公式X(n+1)=(Xn+a/Xn)/2,算出X2,再将X2代公式的右边算出X3等等,直到连续两次算出的Xn和X(n+1)的差的绝对值小于某个值,即认为找到了精确的平方根。
*编写计算平方根的算法(sqrt),(牛顿迭代法)
public class sqrt {
public static void main(String[] args) {
Scanner input =new Scanner(System.in);
System.out.print("请输入要开平方根的数:");
double a=input.nextDouble();
System.out.print(a+"开平方后等于:"+sqrt(a));
}
public static double sqrt(double c){
if (c<0){
return Double.NaN;
}
double err=1e-15;
double t=c;
while(Math.abs(t -c/t) > err *t){
t=(c/t +t)/2.0;
}
return t;
}
}