ניסיתי לכתוב תוכנית בשפת C שתמצא שלשות של מספרים שמקיימות את המשוואה המפורסמת a^2+b^2=c^2 , לדוגמא המספרים 3 4 5 מקיימים את המשוואה. לא הלך לי.ניסיתי להריץ בvisual c++ וגם בdev C ובשניהם הם רצו משתנה double או משהו כזה.
כשאתה כותב a^2+b^2 אתה בטח מתכון ל-a בחזקת 2 + b בחזקת 2 נכון? תגיד ממתי עושים חזקה ב-C/C++ עם הסימבול ^ זה לא בייסיק! הסמל הזה ב-C זה XOR תכתוב פשוט a*a במקום a^2.
מה הקשר בין מה שאתה מנסה לעשות לבין מה שאתה עושה בפועל? התוכנית שלך בודקת אם השורש של a בריבוע ועוד b בריבוע הוא מספר אי-זוגי. אתה בודק אם השארית (מודולו, המסומן %) מחלוקה ב 2 היא 1. מה הקשר בין זה לבין מה שאתה מנסה לעשות? איך זה שהתוצאה אי-זוגית פותר לך את הבעיה? נסח קודם במילים מה הבדיקה שאתה רוצה לעשות.
יש נוסחא שמאפשרת למצוא שלשות פרמיטיביות שהן שלשות שהמחלק הגדול ביותר המשותף להן הוא 1. תסתכל בויקפדיה. אפשר לכפול כל שלשה כזאת במספר שלם כלשהו ולקבל עוד שלשות, אבל לא פרימטביות כמובן.