מספר ארמסטרונג הוא מושג מפתח בתחום ההצפנה והפענוח לאבטחת מידע.
הרעיון הכללי של עיבוד ספרות של מספר הוא טכניקה בסיסית. אתה יכול לפתור משימות רבות בגישה זו, כמו סיכום ספרות, קבלת מכפלה של ספרות, ספירת ספרות והיפוך מספר.
אבל מה זה מספר ארמסטרונג ואיך בודקים אותו?
מהו מספר ארמסטרונג?
מספר ארמסטרונג הוא מספר שסכום הקוביות של הספרות שלו שווה למספר עצמו. לדוגמה, 153 הוא מספר ארמסטרונג. אם אתה לוקח את הספרות של 153 בנפרד וקובע אותן:
(1 × 1 × 1) + (5 × 5 × 5) + (3 × 3 × 3)
לאחר מכן הוסף את התוצאות:
1 + 125 + 27
תקבל 153, זהה למספר המקורי.
אלגוריתם למציאת מספר ארמסטרונג
כתיבת אלגוריתם היא הצעד הראשון ליישום כל תוכנית. אתה יכול להשתמש באלגוריתם כהפניה לכתיבת פסאודוקוד, ואז ליישם אותו באמצעות שפת התכנות הרצויה. אלגוריתם נותן לך את סדרת ההוראות המדויקת שיש לבצע, מבטל שגיאות לוגיות והופך את היישום לפשוט יותר.
הנה האלגוריתם כדי למצוא אם מספר הוא ארמסטרונג או לא:
- הכריז על משתנים sum, temp, n, r
- קח את הערך של n מהמשתמש
- אתחול סכום משתנה ל-0 וקבל גיבוי של n כ-temp = n
- חזור על שלבים 5 - 7 בעוד n > 0
- r = n % 10
- סכום = סכום + קוביה של כל ספרה (r × r × r)
- n = n / 10
- אם הסכום שווה לטמפ', הצג "מספר הוא מספר של ארמסטרונג"
- אחרת, הצג "מספר אינו מספר של ארמסטרונג"
פסאודוקוד ליישום אלגוריתם ארמסטרונג
פסאודוקוד יכול להיות שלב שימושי בתכנון היישום של אלגוריתם. כתיבת הפסאודוקוד עוזרת לך להמיר אותו בקלות לקוד בכל שפת תכנות. הנה הפסאודוקוד ליישום מספר ארמסטרונג:
תוכנית ארמסטרונג ב-C
התבונן בפסאודוקוד שלמעלה והמר כל משפט לקוד C.
התחל בייבוא stdio.h כדי לבצע את פעולות הקלט והפלט. להכריז על רָאשִׁי לתפקד ולהתחיל ליישם את ההיגיון של התוכנית. להשתמש נ כדי לאחסן את מספר הקלט, ר כדי לאחסן את הספרות הבודדות של המספר, סְכוּם לאחסן את סכום הקוביות של הספרות, ו טמפ' כדי לשמור עותק של המספר.
להשתמש ב printf פונקציה לבקש מהמשתמש להזין מספר. להשתמש ב scanf פונקציה לקרוא את המספר ולאחסן אותו במשתנה נ. %d הוא מפרט הפורמט העשרוני לקחת מספר שלם כקלט.
נקה כל ערך זבל על ידי אתחול הסכום כאפס ולקחת גיבוי של n כ-temp.
#לִכלוֹל <stdio.h>
intרָאשִׁי()
{
int n, r, sum, temp;
printf("בבקשה הכנס מספר: ");
scanf("%d", &n);
סכום = 0; temp = n;
להצהיר על א בזמן לולאה הפועלת עד שהמספר הוא אפס או פחות. בתוך הלולאה יש תהליך בן שלושה שלבים שבו אתה יכול להשתמש במשימות תכנות שונות אחרות. שלושת השלבים הם:
- קבל את הספרה האישית של המספר על ידי לקיחת מודול המספר עם 10. כאשר אתה מחלק מספר כלשהו עם 10 כמכלול, השארית היא הספרה האחרונה עצמה. לדוגמה, כאשר אתה מחלק 153 ב-10, תוצאת המספרים השלמים היא 15 והמודלוס הוא 3.
- כאשר יש לך את הספרה הבודדת תוכל לבצע את הפעולה הרצויה. כדי למצוא מספר ארמסטרונג, הפעולה הרצויה היא סכום הקוביות של ספרות המספר. קחו את הקובייה של הספרה r והוסיפו אותה למשתנה הסכום.
- הסר את הספרה האחרונה של המספר על ידי חלוקתו ב-10. בחלוקה ב-10, אתה מקבל את המנה, במקרה זה, 15.
בזמן (n > 0) {
r = n % 10;
sum = sum + (r * r * r);
n = n / 10;
}
בדוק אם הסכום שהתקבל שווה למספר המקורי. אם הם שווים, המספר הוא אכן מספר ארמסטרונג, אחרת, הוא לא.
if (temp == sum)
printf("מספר הוא מספר של ארמסטרונג\n");
אַחֵר
printf("המספר אינו מספר של ארמסטרונג\n");
לַחֲזוֹר0;
}
יישומים אחרים של האלגוריתם הכללי
על ידי שינוי שלב שני של ההיגיון בן שלושת השלבים שנראה לעיל, אתה יכול ליישם מגוון תוכניות.
1. סכום, תוצר של ספרות מספר
כדי לקבל את סכום הספרות של מספר, פשוט החלף את השורה ב:
sum = sum + r;
עבור מוצר, הכריז על משתנה prod כ-1 והחלף את סכום החיבור בסמל הכפל:
prod = prod * r;
2. ספירת ספרות המספר
ל לספור את הספרות של מספר, פשוט אתחול ספירת משתנה לאפס, השמיט את שלב ראשון והגדל אותו עד ש-n שווה לאפס. היישום של הלולאה ייראה כך:
בזמן (n > 0) {
count++;
n = n / 10;
}
3. הפוך למספר, מספר פלינדרום
כדי להפוך מספר, אתחול סיבוב משתנה לאחד, והוסף אותו לאחר הכפלה בעשר:
rev = (rev * 10) + r;
ברגע שתקבל את ההפך של מספר, השווה אותו לעותק של המספר המקורי עצמו. אם המספר ההפוך שווה למספר עצמו, זהו מספר פלינדרום.
4. הספרה הקטנה והגדולה ביותר של מספר
אתחול משתנה min כתשע והשווה אותו עם הספרה שחולצה משלב ראשון כדי למצוא את הספרה הקטנה ביותר של מספר. אתה יכול ליישם את זה כ:
אם (ר < דקה) {
min = r;
}
באופן דומה, אתחול משתנה מקסימום באפס, והשווה אותו עם הספרה שחולצה כדי למצוא את הספרה הגדולה ביותר של מספר. אתה יכול ליישם את זה כ:
אם (ר > מקסימום) {
מקסימום = r;
}
כך תוכל למצוא הספרות הגדולות והקטנות ביותר של מספר.
5. מספרים מיוחדים
ישנם מספרים רבים אחרים, כמו מספר ארמסטרונג, שאתה יכול לחשב. אלה כוללים מספר ניאון, מספר אוטומורפי, מספר קרישנמורטי, מספר באז, מספר מושלם, מספר ידידותי ומספר ראשוני תאום.
תכנות ומתמטיקה
מתמטיקה נמצאת בשימוש נרחב בתכנות. מתמטיקה בינארית היא הליבה של התכנות שכן כל התוכנה שבה אתה משתמש היום היא שילוב של הספרות אפס ואחת. כל הנתונים שאתה עובד איתם מאוחסנים בפורמט בינארי. אלגברה לינארית משמשת ביישומי למידת מכונה, אלגוריתמי גרפים, חישוב קוונטי ועוד.
חשבון, מתמטיקה בדידה וסטטיסטיקה נמצאים בשימוש נרחב בפתרון בעיות ובעיצוב אלגוריתמים. מתמטיקה משפרת את מיומנות החישוב שלך והיא חלק חיוני בתכנות.