质因数分解
题目:质因数分解
题目说明:
请设计一程式,输入一个正整数,改用质因数乘积表达此数,若该质因数出现多次,则用次方表示之。
例如:
n 12=2^2*3
n 50=2*5^2
Input:
输入一正整数n
Output:
n的质因数分解,用空格隔开因数。
Sample Input:
240
Sample Output:
240=2^4*3*5
答案:
import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Scanner; public class zhishufenjie { private static Map<Integer,Integer> map = new HashMap<Integer,Integer>(); private static List<Integer> yinshu = new ArrayList<Integer>(); public static void main(String[] args) { Scanner scan = new Scanner(System.in); int j =scan.nextInt(); System.out.print(j+"="); fengjie(j); playResult(map,yinshu); } public static void fengjie(int n){ int flag=1; while (n > 1) { for (int i = 2; i <= n; i++) { if (n % i == 0) { flag=i; if(!yinshu.contains(i)){ yinshu.add(i); } if(!map.containsKey(i)){ map.put(i, 1); }else{ map.put(i, map.get(i)+1); } break; } } n = n / flag; } } public static void playResult(Map<Integer,Integer> map,List<Integer> yinshu){ String result =""; for(int i=0;i<yinshu.size();i++){ if(map.get(yinshu.get(i))!=1){ result+="*"+yinshu.get(i)+"^"+map.get(yinshu.get(i)); }else{ result+="*"+yinshu.get(i); } } System.out.println(result.substring(1)); } }
作者:码农小陈
文中书写有误之处,欢迎批评指正。
欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
-------------------------------------------
如果觉得这篇文章对你有小小的帮助的话,记得在右下角点个 [推荐]哦,博主在此感谢!
关注我的公众号《码农小陈》 更多精彩内容等着你
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步