WA4

korea19800 Reply 3 years 42 weeks ago
계속 질문드려 죄송합니다 아래의 for문은 소인수분해하는 코드인데요 42 를 입력시 2 3 7 이 나와야 하지만 자꾸 2 7이 나오네요 ㅠㅠ 몇번을 봐도 잘못된 부분이 잘 안 보이네요 바쁘신 것 알지만, 어떤 부분이 잘못되었는지 알려주신다면 정말 감사할것 같습니다! int count =0; for(int i=2;i<=N;i++){ while(N%i==0){ N/=i; if(count==0){ factor[0]=i; count++; // 이 if문 에 1번만 들어오게 만듬. } for(int j=0;j<N;j++){ if(factor[j]==0){ zero_index=j; break; } } if(i != factor[zero_index-1]){ factor[zero_index]=i; } } }
withcs2 Reply 3 years 42 weeks ago
factor[0]=i가 여러 번 실행될 것 같은데 혹시 의도했던 게 그게 맞나요..? zero_index=0부터 시작해서 j로 빈 칸 찾을 없이 그냥 factor[zero_index]=i; zero_index++;로 저장하면 간단하게 될 것 같아요