Search All of the Math Forum:
Views expressed in these public forums are not endorsed by
NCTM or The Math Forum.



Re: JSH: Basic result, test REVISED
Posted:
Jan 20, 2004 6:27 PM


In article <pmo0e1vil.ln1@hudson.theathertons>, Mark Atherton <n_z_w_nguregba@lnubb.pb.hx> wrote:
> James Dolan wrote: > > in article <3c65f87.0401201027.31e1abd6@posting.google.com>, > > james harris <jstevh@msn.com> wrote: > > > > One hallmark of new research is the ability to answer questions that > > others might not have even considered. I've been playing with a > > result that I've mentioned before, but became curious enough to post > > it again, and see if I'm wrong in assuming that what's easy for me to > > prove, is not so easy for contemporary mathematicians using > > contemporary mathematics! > >  > > Following from my research on factoring polynomials into > > nonpolynomial factors I have a rather simple result that given prime > > integers, f_1, f_2, and integer M, where > >  > > M = f_1 f_2 > >  > > if you find integers x and y, where > >  > > x^j = y^j mod M > >  > > where j is a positive odd integer, and abs(x)>1 and abs(y)>1, > >  > > then it must be true that > >  > > (x+y) = 0 mod f_1 or > >  > > (x+y) = 0 mod f_2. > >  > > I'd like to see someone prove that result, if you can. > >  > > I consider this a rather easy test. > >  > > And to answer another poster who replied in my previous thread, yes, I > > have the proof. > >  > > The question here is, do any of you? > > > > f1=7,f2=13,j=3,x=53,y=75 > > > > Well I'm impressed you found that counterexample in 76 minutes! Could > you explain how you did it to those of us who don't know where to start?
You write a C program. This is just being typed in, without testing. There may be a bug or two, and it only tries the case j=3.
#include <stdio.h>
// This function takes a number M, returns true if M is the product // of exactly two primes which will be stored in *f1 and *f2; returns // false if M is not the product of exactly two primes. int two_factors (int M, int* f1, int* f2) { int i, j, k; for (i = 2; i*i <= M; ++i) { if (M % i != 0) continue; k = M / i; for (j = i;j*j <=k; ++j) { if (k % j == 0) break; } if (j*j > k) { *f1 = i; *f2 = j; return 1; } return 0; }
int main (void) { int M; for (M = 4; M <= 10000; ++M) { int f1, f2; if (! two_factors (M, &f1, &f2)) continue; int x, y; for (x = 2; x <= M2; ++x) { for (y = 2; y <= M2; ++y) { if ((x*x*x + y*y*y) % M == 0) { if (x+y % f1 != 0 && x+y % f2 != 0) { printf ("f1=%d, f2=%d, j=3, x=%d, y=%d\n", f1, f2, x, y); } } } } } return 0; }



