"L'esprit de l'escalier" strikes again....

An even simpler statement of your original problem:

      Find the factors that A and B have in common.

If A and B are fairly small (< 1e7, say), a very direct approach is:

       which(  ! (A %% 1:min(A,B)) &  !(B %% 1:min(A,B)) )

Is this "brute force"?  Well, I suppose, but it is simple and direct
and fast enough for A=B=1e7 (5 sec).  It doesn't involve factorization
into prime factors, GCDs, or combinations.

If your goal is concision and not clarity or speed, you can do even better:

       which(  !(A %% 1:B & B %% 1:A) )

which is still practical (though it gives a warning).

How big do your A and B get, and how many different A's and B's do you
need to run this calculation for?

               -s

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to