int check(string tmp)
{
vector<char> str;
vector<int> num;
int ans = 0;
int n = tmp.size();
for (int i = 0; i < n; i++)
{
if (tmp[i] == '0')
{
if (!str.empty())
{
int t = 0;
for (int j = 0; j < str.size(); j++)
{
t *= 10;
t += str[j] - '0';
}
str.clear();
num.push_back(t);
}
}
else
{
str.push_back(tmp[i]);
}
}
if (!str.empty())
{
int t = 0;
for (int j = 0; j < str.size(); j++)
{
t *= 10;
t += str[j] - '0';
}
num.push_back(t);
}
for (int i = 0; i < num.size(); i++)
{
if (prime(num[i]))
{
ans++;
}
}
return ans;
}
1,3번은 풀었는데 이거 테케 1개가 잘못돼서 2시간을 몰두했는데 못 풀었네요 흑흑
진수변환이랑 소수판별자체는 괜찮은데 0이랑 섞여있는거 구분해는게 잘못됐나? ㅠ ㅠ 뭐가 잘못된 걸까유
2학년이니까 가혹한 말은 삼가해주시면 감사하겠습니다
소수 판별할 때 long long 으로 했냐 for 문 안에 변수까지 longlong으로
아뇨 다 int 임다 n/2까지만 검사하는 걸로 하긴 했는데 헉
루트n까지 해야될걸
으악 쉤 감사합니다
나도 몇개 안됐는데 크기문제였나보다
ㅋㅋㅌㅋㅋ 설마 소수판별쪽에 문제가 있을줄은 ㅠㅠ