안녕하세요, 학교 과제로 C++로 약수 구하는 프로그램을 짜고 있는데요
input이라는 텍스트 파일에서 받을 숫자 갯수를 입력받고(cot)
그 뒤로 쭉 숫자를 받아 약수의 개수와 약수의 총합을 출력하는 프로그램입니다.
그런데 알고리즘에 문제가 있는 것인지 작동제한시간을 넘어가 버리네요
어떻게 고쳐야 할지 조언해 주실 수 있을까요?
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
int Cot;
int num=0, sum = 0, size = 0;
ifstream in;
in.open("input.txt");
in >> Cot;
for (int i = 0; i < Cot; i++)
{
in >> num;
for (int divisor = 1; divisor <= (num/2); divisor++)
{
if (num % divisor == 0)
{
sum += divisor;
size++;
}
}
printf("%d %d\n", size, sum);
size = 0;
sum = 0;
}
return 0;
}