עבור לתוכן

חילוק במספרים ראשוניים, שפת C

Featured Replies

פורסם

סליחה על הבורות, התחלתי ללמוד את השפה לפני שבועיים.

המטרה של התוכנה למצוא את המחלקים הראשוניים של מספר, אבל ללא חזרות. נגיד של 50 הם 2 ו 5 (לא 2, 5 ו 5).

הצלחתי לכתוב את התוכנה ככה שתציג את כל המספרים, אבל אין לי מושג איך לסנן מספרים חוזרים ;

 [/font][font=arial]#include <stdio.h>[/font]

[font=arial]void factor_rec(int n)[/font]
[font=arial]{[/font]
[font=arial] int i;[/font]

[font=arial] for (i=2; i <= n; i++)[/font]
[font=arial] { [/font]
[font=arial] if (n%i==0)[/font]
[font=arial] {[/font]
[font=arial] printf("%d ", i);[/font]
[font=arial] factor_rec(n/i);[/font]
[font=arial] return;[/font]
[font=arial] }[/font]
[font=arial] }[/font]
[font=arial] return;[/font]
[font=arial]}[/font]

[font=arial]int main ()[/font]
[font=arial]{[/font]
[font=arial] int num=0, factor=0;[/font]
[font=arial] printf("Please enter a positive integer: ");[/font]
[font=arial] scanf("%d", &num);[/font]
[font=arial] printf("The prime factors of %d are ", num);[/font]
[font=arial] factor_rec(num);[/font]
[font=arial] printf("\n");[/font]

[font=arial] return 0;[/font]
[font=arial]}[/font]

** תתעלמו מהפונטים וכו... לא יודע למה יצא ככה

פורסם
  • מחבר

לא משנה, הסתדרתי.

הגדרתי את n מחדש בפונקצית while במקום בקריאה הרקורסיבית לפונקציה.

פורסם

הדרך הקלסית לרוץ על המספרים היא עד שורש N, חוסך בזמן הריצה ומונע מספרים כפולים

לא ממש הבנתי איך אתה פתרת

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים