700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 求m的最小整数n 使得m*n是完全平方

求m的最小整数n 使得m*n是完全平方

时间:2019-11-04 15:30:25

相关推荐

求m的最小整数n 使得m*n是完全平方

输入一个整数m,找到最小的整数n,使得m*n是完全平方

n可以看作m的奇数次的因子的乘积。

package java11_17;import java.util.ArrayList;import java.util.Scanner;public class java_1117 {/*** @param args*/public static void main(String[] args) {// TODO Auto-generated method stubint m,M;int n;Scanner input=new Scanner(System.in);System.out.println("Enter an integer m:");m=input.nextInt();M=m;ArrayList<Integer> list=new ArrayList<Integer>();for(int i=2;m>1;i++)//找出m的所有约数,1和m除外{if(m%i==0){list.add(i);System.out.println(i);m=m/i;i=1;}}n=cfcs(list);System.out.println("The smallest number n for m*n to be a perfect square is "+n+"\nm*n is "+M*n);}public static int cfcs(ArrayList<Integer> list){int mul=1;ArrayList<Integer> List=new ArrayList<Integer>();for(int i=0;i<list.size();i++)//将m的约数集筛选,把偶数次的数据都去除,奇数次的数据只留一个。{for(int j=i+1;j<list.size();j++){if(list.get(i)==list.get(j)){list.remove(j);list.remove(i);j--;}else{continue;}}}for(int i=0;i<list.size();i++)//把奇数次的数据相乘得n{System.out.println(list.get(i));mul*=list.get(i);}return mul;}}

截图如下:

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。