בסה"כ, אתה צריך למצוא את
כל ה"צירופים הלינאריים" של המכפלות של 2,3,5 כאשר התוצאה קטנה מ-N. מה הבעיה פה? אתה יכול לעשות פתרון חביב שבודק לכל מספר בין 1 ל-N אם הוא מתחלק כנדרש (סיבוכיות התוצאה היא NlgN). ואתה יכול לעשות את זה בצורה רקורסיבית חמודה כשבכל פעם אתה מוסיף מכפלה בכל אחד מהם, ובודק אם התוצאה קטנה מ-N, עם האינווארינטה שהגורם שנוסף אחרון הוא הכי גדול (כדי שלא תגיע לאותם מספרים כמה פעמים). אתה יכול עכשיו לקחת את הכל, ולשים את זה במערך, וככה למיין את הפלט (O(N) זמן ומקום). אם לא צריך למיין, זה יהיה "קצת יותר מהיר". במקרה שלך, עם המס' הראשוניים הספציפיים, ההבדל לא יהיה משמעותי. אבל, מי אנחנו מדמ"חניקים שנחליט מה משמעותי ומה לא. נשים לב שאם יש לנו את עץ הרקורסיה, אולי נוכל למיינו בזמן לינארי. ננסה למיין את העץ בזמן לינארי, בהנחה שהעץ לא קיצוני (שלרוב הצמתים יש כמות ממוצעת של בנים באותה רמה, וכולי', כלומר, ש: N>>מספר הראשוניים וגודלם (בצורה כללית), וכד'). עכשיו, הרעיון הוא שאם נמיין כל אחת מהרמות, הדבר ימיין פחות או יותר גם את הרמה הבאה. בפרט, נניח שהבנים של כל צומת ממוינים (לפי גודל או לפי הגורם הראשוני במכפלה, זה אותו הדבר). עכשיו צריך, איכשהו, למיין כל רמה. ואז, אחרי שכל אחת מהרמות ממויינת, ניתן בבירור לאחד אותן למערך בזמן לינארי במספר האיברים (בעצם, זה לא כזה ברור, אבל גם לא מסובך).
כל ה"צירופים הלינאריים" של המכפלות של 2,3,5 כאשר התוצאה קטנה מ-N. מה הבעיה פה? אתה יכול לעשות פתרון חביב שבודק לכל מספר בין 1 ל-N אם הוא מתחלק כנדרש (סיבוכיות התוצאה היא NlgN). ואתה יכול לעשות את זה בצורה רקורסיבית חמודה כשבכל פעם אתה מוסיף מכפלה בכל אחד מהם, ובודק אם התוצאה קטנה מ-N, עם האינווארינטה שהגורם שנוסף אחרון הוא הכי גדול (כדי שלא תגיע לאותם מספרים כמה פעמים). אתה יכול עכשיו לקחת את הכל, ולשים את זה במערך, וככה למיין את הפלט (O(N) זמן ומקום). אם לא צריך למיין, זה יהיה "קצת יותר מהיר". במקרה שלך, עם המס' הראשוניים הספציפיים, ההבדל לא יהיה משמעותי. אבל, מי אנחנו מדמ"חניקים שנחליט מה משמעותי ומה לא. נשים לב שאם יש לנו את עץ הרקורסיה, אולי נוכל למיינו בזמן לינארי. ננסה למיין את העץ בזמן לינארי, בהנחה שהעץ לא קיצוני (שלרוב הצמתים יש כמות ממוצעת של בנים באותה רמה, וכולי', כלומר, ש: N>>מספר הראשוניים וגודלם (בצורה כללית), וכד'). עכשיו, הרעיון הוא שאם נמיין כל אחת מהרמות, הדבר ימיין פחות או יותר גם את הרמה הבאה. בפרט, נניח שהבנים של כל צומת ממוינים (לפי גודל או לפי הגורם הראשוני במכפלה, זה אותו הדבר). עכשיו צריך, איכשהו, למיין כל רמה. ואז, אחרי שכל אחת מהרמות ממויינת, ניתן בבירור לאחד אותן למערך בזמן לינארי במספר האיברים (בעצם, זה לא כזה ברור, אבל גם לא מסובך).