[关闭]
@feiyangyang 2022-06-06T07:32:16.000000Z 字数 729 阅读 384

1129.连续质数和 代码

代码


  1. #include<cstdio>
  2. #include<cstring>
  3. #include<cmath>
  4. using namespace std;
  5. int f[1300],ans[11000];
  6. int a[110000];
  7. int sushu(int x)
  8. {
  9. if(x<=1) return 0;
  10. int t=sqrt(x);
  11. for(int i=2;i<=t;i++)
  12. {
  13. if(x%i==0) return 0;
  14. }
  15. return 1;
  16. }
  17. int main()
  18. {
  19. // #################注意#########注意################
  20. freopen("prime.in","r",stdin);
  21. // #################注意#########注意################
  22. freopen("prime.out","w",stdout);
  23. // #################注意#########注意################
  24. memset(ans,0,sizeof(ans));
  25. int n,max=0,d=0,len=0;
  26. scanf("%d",&n);f[0]=0;
  27. for(int i=1;i<=n;i++)
  28. {
  29. scanf("%d",&a[i]);
  30. if(max<a[i]) max=a[i];
  31. }
  32. while(d<=max)
  33. {
  34. d++;
  35. while(sushu(d)==0) d++;
  36. len++;
  37. f[len]=d+f[len-1];
  38. for(int i=0;i<len;i++)
  39. {
  40. if(f[len]-f[i]<=max)
  41. {
  42. ans[f[len]-f[i]]++;
  43. }
  44. }
  45. }
  46. for(int i=1;i<=n;i++) printf("%d\n",ans[a[i]]);
  47. }
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注