Warum sind x^2 + y^2 = z^2 (natürliche Zahlen) nie alles Primzahlen?



  • Ich kam zufällig auf diese Ecke von der Sicht der Primzahlen:
    Mit folgendem Programm ist mir etwas aufgefallen:

    #include <cstdint>
    #include <limits>
    #include <iostream>
    #include <cmath>
    
    using namespace std;
    
    void wait()
    {
    	cout << "Press any key" << endl;
    	cin.clear();
    	cin.ignore(numeric_limits<streamsize>::max(), '\n');
    	cin.get();
    }
    
    bool IsPrime(uint64_t number)
    {
    	if (number<2)    return false;
    	if (number == 2)   return true;
    	if (number % 2 == 0) return false;
    
    	for (uint64_t i = 3; i*i <= number; i += 2)
    	{
    		if (number%i == 0) return false;
    	}
    	return true;
    }
    
    int main()
    {
    	const uint64_t start = 1, limit = 1000000;
    	uint64_t a, b;
    
    	for (a = start; a <= limit; ++a)
    	{
    		for (b = a; b <= limit; ++b)
    		{
    				double z = sqrt(a*a + b*b);
    
    				if ((z == (uint64_t)z) && IsPrime(a) && IsPrime(b) && IsPrime((uint64_t)z) )
    				{
    					cout << "a = " << a << " b = " << b << " z = " << z << endl;
    					wait();
    				}
    
    		}
    	}
    	wait();	
    }
    
    1. Warum sind x^2 + y^2 = z^2 (alles natürliche Zahlen) nie alles Primzahlen?

    2. Selbst für nur x und y findet man keine quadratischen Primzahlenpaare.

    if ((z == (uint64_t)z) && IsPrime(a) && IsPrime(b)/* && IsPrime((uint64_t)z)*/ )
    
    1. Haben die z, die Primzahlen sind und obige Forderung erfüllen, eine besondere Bedeutung, z.B. bei den Primzahlen?
    if ((z == (uint64_t)z) && /*IsPrime(a) && IsPrime(b) &&*/ IsPrime((uint64_t)z) )
    


    1. Warum sind x^2 + y^2 = z^2 (alles natürliche Zahlen) nie alles Primzahlen?

    Aus Paritätsgründen müsste dann entweder x=2 oder y=2, und Quadratzahlen, die sich um 4 unterscheiden, gibt es halt nicht viele.



  • Ja, klingt überzeugend.

    Bleibt noch 3)



  • Erhard Henkes schrieb:

    Ja, klingt überzeugend.

    Bleibt noch 3)

    Spontan würde ich sagen, man kann das mit quadratischen Resten lösen. Das hier hilft vielleicht https://de.wikipedia.org/wiki/Legendre-Symbol

    Ne es gibt tatsächlich auch eine Tripel, in denen nur die ersten beiden prim sind.
    Denn alle primitiven Tripel haben ein ungerade letze Zahl. (englishe wikipediaseite Pythagoras Tripel)




Anmelden zum Antworten