publicstaticvoidgetDivisor01(int n){for(int i =1; i <= n; i++){if(n % i ==0){System.out.println(i);}}}
方法一的优化
publicstaticvoidgetDivisor04(int n){for(int i =1; i * i <= n; i++){if(n % i ==0&& i == n / i){// 控制台打印 i ,只打印i,不打印(n/i)目的是为了去重//会出现重复值,所以在这里去重System.out.println(i);}elseif(n % i ==0){// 约数是成对出现的,所以当n%i==0时,i 和(n/i)都是约数System.out.println(i);System.out.println(n / i);}}}
方法二:
publicstaticvoidgetDivisor05(int n){HashSet<Integer> set =newHashSet<Integer>();for(int i =1; i <=Math.sqrt(n); i++){if(n % i ==0){
set.add(i);
set.add(n / i);}}System.out.println(set);}