n 이랑 k 입력하고

n의 약수중 k 번째 출력하는게 문제인데


#include <iostream>

using namespace std;


int PRINT(int n, int k) {

int count = 0;

for (int i = 1; k != 0; i++) {

if (n % i == 0) {

k--;

count++;

}

}

return count;

}



int main() {

int n, k;

cin >> n >> k;

cout << PRINT(n, k);

return 0;

}


이게 내가 짠 코드거든?? 근데 자꾸 시간초과 나서 인터넷 좀 찾아봤는데

나랑 비슷한 코드 있더라고

근데 그건 또 시간초과가 안나와


#include<iostream>

#include<cstdio>

using namespace std;

 

int Solution(int n, int k){

 

    for(int i=1; i<=n; i++){

        if(n%i ==0){

            k--;

            if(k==0) return i;

        }

    }

 

    return 0;

}

 

int main(void){

    int n;

    int k;

 

    cin >> n >> k;

    printf("%d", Solution(n,k));

 

    return 0;

}


이게 그 사람 코드인데

나랑 엄청 막 다른거같지는 않거든?

그런데 이사람은 어뜨캐 시간초과 안나온거임??