
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
int solution(int n, int k) {
int answer;
int cnt = 0;
string transform="";
while(n > 0)
{
int remain;
remain = n%k;
n=n/k;
transform+=to_string(remain);
}
reverse(begin(transform),end(transform));
cout<<transform;
string collect = "";
for(int i=0;i<transform.size();i++)
{
if(transform[i] != '0')
{
collect += transform[i];
}
else
{
if(collect != "")
{
long long x = stoll(collect);
int flag = 1;
for(long long j=2; j*j<=x ; j++)
{
if(x%j == 0)
{
flag = 0;
break;
}
}
if(flag==1 && x!=1)
{
cnt++;
}
collect="";
}
}
}
if(collect != "")
{
long long x = stoll(collect);
int flag = 1;
for(long long i=2; i*i<=x ; i++)
{
if(x%i== 0)
{
flag = 0;
break;
}
}
if(flag==1 && x!=1)
{
cnt++;
}
collect="";
}
answer = cnt;
return answer;
}
문제는 어렵지 않았다. 하지만 문제를 풀어가는 과정에서 문제를 제대로 보지 않고 정답이 0인 경우 -1을 출력하게 하여 5개 정도의 테스트 케이스를 계속 실패했다.
문제를 잘 보는 습관을 길러야 겠다는 생각이 들었다.
그리고 long long 형은 길이가 긴 int형이라는 것을 알 수 있었다. 이걸 기억해야 하는 이유는 double형은 나머지 연산이 안된다. 그렇기에 길이가 긴 int형을 다루는 경우 long long형을 사용하게 되면 나머지 연산을 할 수 있다.