func_code_string: #include <bits/stdc++.h>   const int N = 100001;   int Pri[200005];   int NN, Cnt[100005], Mac[100005];   bool Use[200005];   void GetPrimeList() {     int TmpN = sqrt(N);     for (int i = 2; i <= N; ++i) Use[i] = true;     for (int i = 2; i <= N; ++i) {       if (Use[i]) Pri[++Pri[0]] = i;       for (int j = 1; j <= Pri[0] && i * Pri[j] <= N; ++j) {         Use[i * Pri[j]] = false;         if (i % Pri[j] == 0) break;       }       if (i <= TmpN) NN = Pri[0];     }     ++NN;     for (int i = 1; i <= N; ++i) Use[i] = false;   }   int Add(int x) {     int t = x;     for (int i = 1; i <= NN; ++i)       if (t % Pri[i] == 0) {         if (Cnt[Pri[i]] != 0) return Mac[Pri[i]];         for (; t % Pri[i] == 0; t /= Pri[i])           ;       }     if (t != 1 && Cnt[t] != 0) return Mac[t];     t = x;     for (int i = 1; i <= NN; ++i)       if (t % Pri[i] == 0) {         ++Cnt[Pri[i]];         Mac[Pri[i]] = x;         for (; t % Pri[i] == 0; t /= Pri[i])           ;       }     if (t != 1) {       ++Cnt[t];       Mac[t] = x;     }     Use[x] = true;     return -1;   }   void Del(int x) {     int t = x;     for (int i = 1, j, k; i <= NN; ++i)       if (t % Pri[i] == 0) {         --Cnt[Pri[i]];         Mac[Pri[i]] = 0;         for (; t % Pri[i] == 0; t /= Pri[i])           ;       }     if (t != 1) {       --Cnt[t];       Mac[t] = 0;     }     Use[x] = false;   }   int main() {     GetPrimeList();     int n, m, num;     char op;     scanf( %d %d n , &n, &m);     for (int i = 1, ret; i <= m; ++i) {       scanf( %c %d n , &op, &num);       if (op ==  + ) {         if (Use[num])           puts( Already on );         else {           ret = Add(num);           if (ret == -1)             puts( Success );           else             printf( Conflict with %d n , ret);         }       } else {         if (!Use[num])           puts( Already off );         else {           Del(num);           puts( Success );         }       }     }     return 0;   }   