unbekannter Fehler



  • Hall, das Programm läuft...

    #include <string.h>
    #include <iostream>
    using namespace std;
    #include <sstream>
    #include <string>
    #include <vector>
    #include <cstdio>
    #include <math.h>
    int zeler;
    int drz1=0; // akle zahl
    int drz2=0; // neue Zahl
    int Lenge;
    int input;
    
    int main(int argc, const char * argv[])
    {
        vector<int>npzzeler;
        vector<int>pzzeler;
        vector<int>zahlensammler;
        for (zeler=1; zeler<=20; zeler++)// Dreieckszahlhersteller
        {
            drz1=drz1+zeler;
            drz2=zeler+drz1;
            for(input=drz1; input<drz2; input++)
            {
                if (input%2==!0)
                    zahlensammler.push_back(input);
                //cout<< input<< " input\n";
            }
    
            std::cout <<zeler<<". indrzaliges.Interv.von "<<drz1+1<<" - "<<drz2<<" hat "<<zeler/2<<" uZ \n";
            for(auto it = zahlensammler.begin(); it != zahlensammler.end();it++) // Ausdruck
            {
                // cout<<""<< *it <<" ";
    
                int x=*it; int y=0; int Pruefung=0;
                for(y=3; y<sqrt(x); y++)
                {
                    if(x%y==0)
                    {
                        Pruefung=1;
                        //cout<<Pruefung<<"=Pr "<<y<<"-y "<<x%y<<"mod"<<endl;
                    }
                }
                if(Pruefung==!1)
                {
                    pzzeler.push_back(*it);
                    //cout <<x<< " Primzahl!" << endl;
                }
                else
                {
                    npzzeler.push_back(*it);
                    //  cout <<x<<" keine PZ!" << endl;
                }
                //cout<<"Ende"<<endl;
            }
            cout<<pzzeler.size()<<" PZ: ";
            for(auto it = pzzeler.begin(); it != pzzeler.end();it++) // Ausdruck
            {
                cout<<""<< *it <<" ";
    
            }
            cout<<"\n"<<npzzeler.size()<<" uNPZ: ";
    
            for(auto it = npzzeler.begin(); it != npzzeler.end();it++) // Ausdruck
            {
                cout<<""<< *it <<" ";
    
            }
            cout<<"\n";
            npzzeler.clear();
            pzzeler.clear();
            zahlensammler.clear();
        }
        return 0;
    }
    

    Frage, warum stimmen die Ergebnisse erst in höheren Bereichen, aber z. B.
    3. indrzaliges.Interv.von 7 - 9 hat 1 uZ
    1 PZ: 7
    0 uNPZ:

    hier nicht. Es sind eindeutig 1 ungerade NichtPrimzahlen im Bereich, sowie 2 ungerade Zahlen insgesamt.

    Was muß ich tun?



  • Also, ich bin, das Programm sucht die Interdreieckszahligen Bereiche auf, und durchsucht diese, indem er die PZ zählt und die ungeraden NichtPrimZahlen ...


Anmelden zum Antworten