hdoj 1230 火星A+B

举报
xindoo 发表于 2022/04/16 00:08:25 2022/04/16
【摘要】 #include<stdio.h>#include<string.h> int a[150],b[150],t[150];int pr[150]; void prime(){ int i, j, f, cnt = 1; pr[0] = 2; for(i = 3; ;i++) { ...

  
  1. #include<stdio.h>
  2. #include<string.h>
  3. int a[150],b[150],t[150];
  4. int pr[150];
  5. void prime()
  6. {
  7. int i, j, f, cnt = 1;
  8. pr[0] = 2;
  9. for(i = 3; ;i++)
  10. {
  11. f = 1;
  12. for(j = 2;j * j <= i; j++)
  13. {
  14. if(i % j == 0)
  15. {
  16. f = 0;
  17. break;
  18. }
  19. }
  20. if(f)
  21. pr[cnt++] = i;
  22. if(cnt > 120)
  23. break;
  24. }
  25. }
  26. void change(int l,int *p)
  27. {
  28. int cnt = 0;
  29. for(int i = l;i >= 0;i--)
  30. {
  31. p[cnt++] = t[i];
  32. }
  33. }
  34. int main()
  35. {
  36. int i, j;
  37. prime();
  38. while(1)
  39. {
  40. memset(a,0,sizeof(a));
  41. memset(b,0,sizeof(b));
  42. i = 0;j = 0;
  43. while(1)
  44. {
  45. scanf("%d",&t[i++]);
  46. if(getchar() == ' ')
  47. {
  48. change(i - 1,a);
  49. break;
  50. }
  51. }
  52. while(1)
  53. {
  54. scanf("%d",&t[j++]);
  55. if(getchar() == '\n')
  56. {
  57. change(j - 1,b);
  58. break;
  59. }
  60. }
  61. if(i == 1 && j == 1 && !a[0] && !b[0])
  62. break;
  63. int temp = 0;
  64. for(i = 0; i < 120 ;i++ )
  65. {
  66. a[i] = a[i] + b[i] + temp;
  67. temp = a[i] / pr[i];
  68. a[i] = a[i] % pr[i];
  69. }
  70. for(i = 120; i >= 0;i--)
  71. {
  72. if(a[i] != 0)
  73. break;
  74. }
  75. for(;i >= 0;i--)
  76. {
  77. printf("%d",a[i]);
  78. if(i)
  79. putchar(',');
  80. else
  81. putchar('\n');
  82. }
  83. }
  84. return 0;
  85. }

文章来源: xindoo.blog.csdn.net,作者:xindoo,版权归原作者所有,如需转载,请联系作者。

原文链接:xindoo.blog.csdn.net/article/details/8495419

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。