fork download
  1. #include <stdio.h>
  2. int final[3];
  3. int checkprime(int n,int loopcount)
  4. {
  5. int flag=0,m;
  6. for(m=2;m<=loopcount;m++)
  7. {
  8. if(n%m==0 && n!=2)
  9. {
  10. flag=1;
  11. return 0;
  12. break;
  13.  
  14. }
  15. else if(n==2)
  16. {
  17. flag=0;
  18. break;
  19.  
  20. }
  21. }
  22. if(flag==0)
  23. {
  24. return 1;
  25. }
  26. if(flag==1)
  27. {
  28. return 0;
  29. }
  30. }
  31. int main()
  32. {
  33. int test_no,n,i,j,k,m,max=1,loopcount,product=1,max_available=0,count=0;
  34. scanf(" %d",&test_no);
  35. for(i=0;i<3;i++)
  36. {
  37.  
  38. scanf(" %d",&n);
  39. int array[n];
  40. for(j=0;j<n;j++)
  41. {
  42. scanf(" %d",&array[j]);
  43. loopcount=array[j]/2;
  44. if(max<loopcount)
  45. {
  46. max=loopcount;
  47. }
  48. }
  49. loopcount=max;
  50. max=1;
  51. for(j=0;j<n;j++)
  52. {
  53. int x=checkprime(array[j],loopcount);
  54. if(x==1)
  55. {
  56. if(array[j]>=max)
  57. {
  58. max=array[j];
  59. }
  60. }
  61. }
  62.  
  63. product=product*max;
  64. max=1;
  65. for(j=0;j<n;j++)
  66. {
  67. int x=checkprime(array[j],loopcount);
  68. if(x==1)
  69. {
  70. if(array[j]>max && product!=array[j])
  71. {
  72. max=array[j];
  73. max_available=1;
  74. }
  75. else if(array[j]>=max && product==array[j] && max_available==0)
  76. {
  77. max=product;
  78. max_available=1;
  79. }
  80. }
  81. if(x==0)
  82. {
  83. count++;
  84. }
  85. }
  86. if((count==n||count==n-1)&& max_available==0)
  87. {
  88. final[i]=-1;
  89.  
  90. }
  91. else
  92. {
  93. product=product*max;
  94. final[i]=product;
  95.  
  96. }
  97. product=1;
  98. max=1;
  99. max_available=0;
  100. }
  101. for(i=0;i<3;i++)
  102. {
  103. printf("%d\n",final[i]);
  104. }
  105. return 0;
  106. }
Time limit exceeded #stdin #stdout 5s 527360KB
stdin
Standard input is empty
stdout
Standard output is empty