第七章 数学 2 AcWing 1545. 质因子

ゝ一世哀愁。 2023-09-24 14:36 162阅读 0赞

第七章 数学 2 AcWing 1545. 质因子

原题链接

AcWing 1545. 质因子

算法标签

数学 质数因式分解

思路

在这里插入图片描述

代码

  1. #pragma GCC optimize(2)
  2. #pragma GCC optimize(3)
  3. #include<bits/stdc++.h>
  4. #define int long long
  5. #define x first
  6. #define y second
  7. #define ump unordered_map
  8. #define ums unordered_set
  9. #define pq priority_queue
  10. #define rep(i, a, b) for(int i=a;i<b;++i)
  11. #define Rep(i, a, b) for(int i=a;i>=b;--i)
  12. using namespace std;
  13. typedef pair<int, int> PII;
  14. const int N=10005, INF=0x3f3f3f3f3f3f3f3f;
  15. const double Exp=1e-8;
  16. //int t, n, m, cnt, ans;
  17. int n;
  18. inline int rd(){
  19. int s=0,w=1;
  20. char ch=getchar();
  21. while(ch<'0'||ch>'9'){if(ch=='-')w=-1;ch=getchar();}
  22. while(ch>='0'&&ch<='9') s=s*10+ch-'0',ch=getchar();
  23. return s*w;
  24. }
  25. void put(int x) {
  26. if(x<0) putchar('-'),x=-x;
  27. if(x>=10) put(x/10);
  28. putchar(x%10^48);
  29. }
  30. signed main(){
  31. ios::sync_with_stdio(false);
  32. cin.tie(0);
  33. cout.tie(0);
  34. n=rd();
  35. printf("%lld=", n);
  36. if(n==1){
  37. printf("1");
  38. }else{
  39. bool flag=true;
  40. for(int i=2; i<=n/i; ++i){
  41. if(n%i==0){
  42. int k=0;
  43. while(n%i==0){
  44. n/=i;
  45. k++;
  46. }
  47. if(flag){
  48. printf("%lld", i);
  49. flag=false;
  50. }else{
  51. printf("*%lld", i);
  52. }
  53. if(k>1){
  54. printf("^%lld", k);
  55. }
  56. }
  57. }
  58. if(n!=1){
  59. if(flag){
  60. printf("%lld", n);
  61. flag=false;
  62. }else{
  63. printf("*%lld", n);
  64. }
  65. }
  66. }
  67. return 0;
  68. }

参考文献

AcWing 1545. 质因子(PAT甲级辅导课)y总视频讲解

原创不易
转载请标明出处
如果对你有所帮助 别忘啦点赞支持哈
在这里插入图片描述

发表评论

表情:
评论列表 (有 0 条评论,162人围观)

还没有评论,来说两句吧...

相关阅读

    相关 数学

    说明:本文翻译自《TangoRefMan\_Sep\_1\_2008》 由于本人是编程初学者,对很多程序设计概念不是非常熟悉,编程经验不多,再加上英语水平不高,翻译纯属一个D