Re: Math problem
			 
             
			
		
		
		
		Here is the code.  Crudely done by brute force in a rather esoteric flavor of basic: 
 
PRIMES = '2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61  ,67,71,73,79,83,89,97,101,103,109,113,127,131,137' 
SWAP ',' WITH @AM IN PRIMES 
ILIMIT = DCOUNT(PRIMES,@AM) 
PRINT ILIMIT 
FOR I = 4 TO ILIMIT 
  NBR = I 
  COMBOS = '' 
  COMBOX = '' 
  IDX = 1 
  FOR J = 1 TO I 
    FOR K = J+1 TO I 
      FOR L = K+1 TO I 
        GOSUB FIND.DUPLICATE 
        IF NOT(FOUND.DUPLICATE) THEN 
          COMBOS<-1> = PRIMES*PRIMES*PRIMES 
          COMBOX<-1> = J:',':K:',':L 
        END 
      NEXT L 
    NEXT K 
  NEXT J 
  GOSUB CHECK.SOLUTION 
NEXT I 
PRINT 'DONE' 
STOP 
* 
SOLVED:* 
  PRINT '---------------------' 
  PRINT 'SOLVED' 
  PRINT NBR 
  FOR M = DCOUNT(COMBOX,@AM) TO 1 STEP -1 
    PRINT COMBOX 
  NEXT M 
  INPUT CH,1_ 
RETURN 
* 
CHECK.SOLUTION: * 
  FOR J = 1 TO I 
    FOR K = J + 1 TO I 
      NBR.MATCHES = 0 
      FOR M = DCOUNT(COMBOS,@AM) TO 1 STEP -1 
        A.COMBO = COMBOS 
        IF MOD(A.COMBO,PRIMES)=0 AND MOD(A.COMBO,PRIMES)=0 THEN 
          NBR.MATCHES = NBR.MATCHES + 1 
          IF NBR.MATCHES > 1 THEN RETURN 
        END 
      NEXT M 
      IF NBR.MATCHES = 0 THEN RETURN 
    NEXT K 
   NEXT J 
   GOSUB SOLVED 
RETURN 
* 
FIND.DUPLICATE: * 
  FOUND.DUPLICATE = 0 
  FOR M = DCOUNT(COMBOS,@AM) TO 1 STEP -1 
    A.COMBO = COMBOS 
    J.MOD = MOD(A.COMBO,PRIMES) 
    K.MOD = MOD(A.COMBO,PRIMES) 
    L.MOD = MOD(A.COMBO,PRIMES) 
    IF J.MOD = 0 THEN 
      IF K.MOD=0 OR L.MOD=0 THEN 
        FOUND.DUPLICATE = 1 
      END  
    END ELSE IF K.MOD=0 AND L.MOD=0 THEN 
      FOUND.DUPLICATE = 1 
    END 
  NEXT M 
RETURN 
		
	
		
		
		
		
		
		
		
		
		
	
		
			
			
			
			
				 
			
			
			
			
            
			
			
				
			
			
			
		 
		
	
	
	 |