HDU 1164(质因子的分解)

亦凉 2022-09-20 11:22 269阅读 0赞

题意:如题。

  1. #include<iostream>
  2. #include<math.h>
  3. using namespace std;
  4. const int maxn=65536;
  5. int plist[7000];
  6. bool flag[maxn];
  7. int i;
  8. void init()
  9. {
  10. int max=(int)sqrt(maxn*1.0);
  11. memset(flag,true,sizeof(flag));
  12. for(i=2;i<=max;i++)
  13. {
  14. if(flag[i])
  15. for(int j=i*i;j<=maxn;j+=i)
  16. flag[j]=false;
  17. }
  18. int count=0;
  19. for(i=2;i<=maxn;i++)
  20. if(flag[i])
  21. {
  22. plist[count]=i;
  23. count++;
  24. }
  25. //cout<<count<<" "<<plist[count-1]<<endl;
  26. }
  27. int main()
  28. {
  29. int n;
  30. init();
  31. //cout<<plist[0]<<endl;
  32. while(scanf("%d",&n)!=EOF)
  33. {
  34. int index=0;
  35. while(n>=plist[index])
  36. {
  37. //cout<<index<<" "<<plist[index]<<" "<<n<<endl;
  38. if(n%plist[index]==0)
  39. {
  40. n=n/plist[index];
  41. if(n!=1) printf("%d*",plist[index]);
  42. else printf("%d\n",plist[index]);
  43. //cout<<plist[index]<<" "<<n<<endl;
  44. }
  45. else
  46. {
  47. index++;
  48. }
  49. }
  50. //cout<<plist[index]<<" "<<n<<endl;
  51. }
  52. return 0;
  53. }

发表评论

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

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

相关阅读

    相关 因子分解

    概念:所谓质因子分解是将一个正整数n写成一个或多个质数的乘积形式。 例如:6=2\3,180=2\2\3\3\5,也可以写成指数形式,例如 180=2^2\3^2\5^1;