์ ๋ ฅ ๋ ์๋ฅผ ๊ธฐ์ค์ผ๋ก ์ฝ์๋ค์ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์ค์ตํด๋ณด๋๋ก ํ์ฃ .
์ฝ์๋ "์ด๋ค ์๋ ์์ ๋๋์ด ๋๋จธ์ง๊ฐ ์์ด ๋จ์ด์ง๋ ์๋ ์"(์ฌ์ ) ์ด๋ผ๊ณ ์ ์๋ฅผ ๋ด๋ฆฌ๊ณ ์์ต๋๋ค. ์ฝ๊ฒ ๋งํด์ ์ด๋ค ์ A๋ฅผ n์ ์๋ก ๋๋ ๋ ๋๋จธ์ง๊ฐ 0์ผ ๋ ์ด๋ n์ A์ ์ฝ์๋ผ๊ณ ๋งํ ์ ์์ต๋๋ค.
๋จผ์ ์ซ์๋ฅผ ํ๋ ์ ๋ ฅ์ ๋ฐ๊ธฐ ๋๋ฌธ์ scanf()ํจ์๋ฅผ ์ฌ์ฉํฉ๋๋ค.
int inputVal;
scanf("%d",&inputVal);
์ด์ ์ ๋์ผํ์ง์.
๋ค์์ผ๋ก, ์ ๋ ฅ ๋ ์๋ฅผ ๊ธฐ์ค์ผ๋ก ์ฝ์๋ฅผ ๊ตฌํด์ผ ํฉ๋๋ค.
inputVal%i ==> 0์ผ ๋ i์ ์ฝ์
์ด ์กฐ๊ฑด์์ if๋ฌธ์ผ๋ก ํด์ 1์์ inputVal๊น์ง์ ์๋ฅผ ๋น๊ตํ๋ฉด ๋ฉ๋๋ค. ์๋์ ๊ฐ์ด์.
for(i =1; i<=inputVal1; i++){
//์
๋ ฅ๊ฐ์ ๋๋์ด ๋จ์ด์ง๋ ์
if(inputVal%i == 0) printf("%d ", i);
}
์ฌ๊ธฐ์, ์ญ์์ผ๋ก for๋ฌธ์ ๋๋ฆฌ์๋ ์์ต๋๋ค. ์ ์ญ์์ผ๋ก ํ ๊ป์.
for(i = inputVal; i >= 1; i--){
//์
๋ ฅ๊ฐ์ ๋๋์ด ๋จ์ด์ง๋ ์
if(inputVal%i == 0) printf("%d ", i);
}
์ด ์ฝ์๊ตฌํ๊ธฐ ๋ฐฉ์์ for๋ฌธ์ผ๋ก ๋๋ ธ์ต๋๋ค.
๋ฃจํ๋๊น for๋ฌธ ๋์ ์ while๋ฌธ์ผ๋ก ์์ ํด ๋ณด์์ต๋๋ค. ๋ฃจํ๊ฐ ๋์๊ฐ๋ ์๋ฏธ๋ง ์ ์๊ณ ์๋ค๋ฉด ์ด๋ค ๊ฒ์ผ๋ก๋ ์ถฉ๋ถํ ํํ์ด ๊ฐ๋ฅ ํ ๊ฑฐ๋ผ ๋ณด๋ค์.
i=inputVal;
while(i>=1){
if(inputVal%i == 0) printf("%d ", i);
i--;
}
int main(){
printf("์ฌ๊ทํจ์ %d์ ์ฝ์: ", inputVal);
Cal(inputVal,inputVal);
}
//์ฌ๊ทํจ์๋ฅผ ์ด์ฉํ ์ฝ์ ๊ตฌํ๊ธฐ
void Cal(int val, int a){
if(a==1) printf("%d \n",a);
else {
if(val%a == 0) printf("%d ",a);
Cal(val, a-1);
}
}
์ฌ๊ทํจ์๋ ๋ง์ง๋ง ์กฐ๊ฑด๊ฐ์ด ๋ ๋๊น์ง ์๊ธฐ ์์ ์ ์ฌํธ์ถํ๋ค๋ ์๋ฆฌ๋ฅผ ์ด์ฉํ๋ฉด ๋ฃจํ๋ฌธ ํํ๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค. ํํ์ ์์ ๊ฐ์ด ํ ์ ์์ต๋๋ค.
"inputVal/2"์ ๊ฐ์ ๊ธฐ์ค์ผ๋ก ๋ฃจํ๋ฅผ ๋๋ฆฌ๋ฉด ๋ฉ๋๋ค.
for(i=inputVal/2;i>=1;i--){
if(inputVal%i == 0) printf("%d ", i);
}
์ด์ ๋ง๋ ์๊ณ ๋ฆฌ์ฆ์ ์ฝ๋ฉํด๋ณด๊ณ ์คํ ๊ฒฐ๊ณผ๋ฅผ ์ดํด ๋ณผ๊น์.
[์ ์ฒด์์ค]
#include
#include
void Cal(int val, int a);
int main(int argc, char *argv[]) {
int inputVal;
int i;
printf("์ฝ์๋ฅผ ๊ตฌํ ์ ์๋ฅผ ์
๋ ฅํ์์ค? ");
scanf_s("%d", &inputVal);
//for๋ฌธ์ ์ด์ฉํ ์ฝ์ ๊ตฌํ๊ธฐ
printf("for๋ฌธ %d์ ์ฝ์: ", inputVal);
for(i = inputVal; i >= 1; i--){
//์
๋ ฅ๊ฐ์ ๋๋์ด ๋จ์ด์ง๋ ์
if(inputVal%i == 0) printf("%d ", i);
}
printf("\n");
//while๋ฌธ์ ์ด์ฉํ ์ฝ์ ๊ตฌํ๊ธฐ
i=inputVal;
printf("while๋ฌธ %d์ ์ฝ์: ", inputVal);
while(i>=1){
if(inputVal%i == 0) printf("%d ", i);
i--;
}
printf("\n");
printf("์ฌ๊ทํจ์ %d์ ์ฝ์: ", inputVal);
Cal(inputVal,inputVal);
//์ฝ์๊ท์น์ ์ด์ฉํ ๋ฐฉ์
printf("์ฝ์๊ท์น %d์ ์ฝ์: %d ", inputVal,inputVal);
for(i=inputVal/2;i>=1;i--){
if(inputVal%i == 0) printf("%d ", i);
}
printf("\n");
system("pause");
return 0;
}
//์ฌ๊ทํจ์๋ฅผ ์ด์ฉํ ์ฝ์ ๊ตฌํ๊ธฐ
void Cal(int val, int a){
if(a==1) printf("%d \n",a);
else {
if(val%a == 0) printf("%d ",a);
Cal(val, a-1);
}
}
[๊ฒฐ๊ณผ]
์ค๋์ ์ฝ์๋ฅผ ๊ตฌํ๋ ์ฝ๋ฉ์ ๋ค์ํ ๋ฐฉ์์ผ๋ก ์ ๊ทผํด ๋ณด์์ต๋๋ค. ์ด ๋ฐฉ๋ฒ์ธ์ ๋ ๋ค๋ฅธ ๋ฐฉ๋ฒ์ ์ฐพ์์ ์ฝ์๋ฅผ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์ธ์.