如果一个正整数不能被大于1的完全平方数所整除,那么我们就将该数称为无平方数因数的数。例如,靠前的一些无平方数因数的数是{1,2,3,5,6,7,10,11,13,14,15,17,19…}。创建一个class SquareFree,其中包括一个函数getNumber,在给定一个int n后,该函数能够返回第n个最小无平方因数的数。请注意这里是从1开始的,那么如果n=1,该算法将会返回最小的无平方数因数的数。
n 的取值范围为1到1,000,000,000(其中包括1和1,000,000,000)
package com.imooc.concurrent; import java.util.Scanner; public class SquareFree { public static void main(String[] args) { // TODO Auto-generated method stub Scanner sc=new Scanner(System.in); System.out.println("请输入第n位的n:"); System.out.println("输入的是数字:"+sc.nextInt()); System.out.println("第"+sc.nextInt()+"位的无平方数因数的数为"+getNumber(sc.nextDouble())); sc.close(); } public static double getNumber(double n){ double count=0, value=0; for(double i=1;i<=Double.MAX_VALUE;i++){ for(double j=1;j<=i;j++){ if(i%(j*j)!=0){ count++; if(count==n){ value=i; break; } } } } return value; } }
uSimple
chore
chore
相关分类