fork download
  1. /*
  2.   PROG: ride
  3.   LANG : C++
  4. */
  5.  
  6. #include<stdio.h>
  7. //#include<stdlib.h>
  8. //#include<iostream>
  9. #include<string.h>
  10. //#include<conio.h>
  11. #include<math.h>
  12. //#include<algorithm>
  13. //#define int char
  14. //#define clrscr() 100
  15. //#define INFINITY 99999
  16.  
  17.  
  18.  
  19. //using namespace std;
  20. //#define FOR(i,a,b) for(int i=a;i<b;i++)
  21.  
  22.  
  23.  
  24.  
  25.  
  26.  
  27.  
  28.  
  29. long int gcd( long int a1, long int b1)
  30. {
  31. /*unsigned long long int t1;
  32.   while(b1!=0)
  33.   {
  34.   t1 = b1;
  35.   b1 = a1%b1;
  36.   a1 = t1;
  37.   }
  38.  
  39.   return a1;*/
  40. if (!b1) return a1;
  41. return gcd(b1,a1%b1);
  42. }
  43.  
  44.  
  45. int main()
  46. {
  47. long int t,n,a[100002],i;
  48. long int temp;
  49. //cin>>t;
  50. scanf("%ld",&t);
  51. while(t--)
  52. {
  53. //cin>>n;
  54. scanf("%ld",&n);
  55. //cin>>a[0];
  56. scanf("%ld",&a[0]);
  57. temp=a[0];
  58. //FOR(i,1,n)
  59. for( i=1;i<n;i++)
  60. {
  61. //cin>>a[i];
  62. scanf("%ld",&a[i]);
  63. temp=gcd(temp,a[i]);
  64. }
  65. //cout<<temp<<"\n";
  66. if(temp>1)
  67. {
  68.  
  69. //FOR(i,2,temp)
  70. for( i=2;i<=temp/2;i++)
  71. {
  72. if(temp%i==0)
  73. {
  74. //temp=i;
  75. break;
  76. }
  77. }
  78. // cout<<temp<<"\n";
  79. printf("%ld\n",i);
  80. }
  81. else //cout<<"-1\n";
  82. printf("-1\n");
  83.  
  84. }
  85. return 0;
  86. }
  87.  
Success #stdin #stdout 0.01s 2996KB
stdin
1
1
24371
stdout
12186