// פתרון שאלה מספר 2
// הקוד שאני כותב כאן, כמו בשאלה הקודמת, לא נוסה
//Factorize אני רואה שביקשו את המחלקה
// אז אני אכתוב ת'תוכנית מההתחלה בתור מחלקה ולא בתור פונקציה
import corejava.*;
public class Factorize{
public static void main(String[] args){
// קבל מספר שלם גדול מאחד מהמשתמש
int a = Console.readInt("enter a number
larger than one");
// כל עוד המספר שקיבלת קטן מ-2
// תבקש מהמשתמש להכניס מספר חוקי
while(a<2){
System.out.println("this number is illegal");
a = Console.readInt("enter a number
larger than one");
}
// בדיקה האם המספר הוא ראשוני
// לא בטוח בכלל שהבדיקה נכונה
if(a%2!=0 || a%3!=0 || a==2 || a==3){
System.out.println("Prime");
}
else{
//מונה את מספר הפעמים שיש את הגורם הראשוני 3
int counter4three=0;
//מונה את מספר הפעמים שיש את הגורם הראשוני 2
int counter4two=0;
// כל עוד המספר מתחלק ב-3
// תוסיף למונה 1
// והמספר יהיה המספרחלקי 3
while(a%3==0){
++counter4three;
a = a/3;
}
// כל עוד המספר מתחלק ב-2
// תוסיף למונה 1
// והמספר יהיה המספרחלקי 2
while(a%2==0){
++counter4four;
a = a/2;
}
// הדפסת הגורמים שורה שורה
// כל עוד המונה גדול מאפס
// תדפיס את המספר 2 ותרד שורה
// המונה יקטן באחד
while(counter4two>0){
System.out.println("2");
counter4two--;
}
// כל עוד המונה גדול מאפס
// תדפיס את המספר 3 ותרד שורה
// המונה יקטן באחד
while(counter4three>0 ){
System.out.println("3");
counter4three--;
}
}
}
} |