      SUBROUTINE CHERCHE_OPPOSEE(IFAC,NN1,NN2,NN3,NN4,N1,N2,N3,IPROD)
C
      INTEGER III(2,2),NN(4),N(3),IFAC(4)
C
      NN(1) = NN1
      NN(2) = NN2
      NN(3) = NN3
      NN(4) = NN4
      NOP = 0
      DO 10 I=1,4
        DO 10 J=1,4
          IF (2*IFAC(I).EQ.IFAC(J)) THEN
            NOP = NOP+1
            III(NOP,1) = I
            III(NOP,2) = J
          ENDIF
   10 CONTINUE
      IF (NOP.GT.1) THEN
        IPROD = 0
      ELSE
        IPROD = 1
        J = 0
   12   J = J+1
        I = 0
        II = 0
   11   I  = I +1
        II = II+1
        IF (I.EQ.III(1,J)) I = I+1
        N(II) = NN(I)
        IPROD = IPROD*IFAC(I)
        IF(II.LT.3) GOTO 11
        IF (IPROD.EQ.48.OR.IPROD.EQ.40.OR.IPROD.EQ.36.OR.IPROD.EQ.30.OR.
     &      IPROD.EQ.24.OR.IPROD.EQ.20.OR.IPROD.EQ.18.OR.IPROD.EQ.15) 
     &      THEN
          N1=N(1)
          N2=N(2)
          N3=N(3)
        ELSE
          IF (J.LT.2) THEN
            GOTO 12
          ELSE
            IPROD=0
          ENDIF
        ENDIF
      ENDIF
      IF (IPROD.EQ.0)  PRINT*,'PROBLEME',(IFAC(I),I=1,4)
      END
