stablegradients/pie-gem5-pairs huggingface dataset:
// Slower C++ solution:


#include<bits/stdc++.h>

using namespace std;



char s[100060];

int main()

{

    int n,b,a,len,i,cnt=0;

    scanf("%d %d %s",&a,&b,s);

    len=strlen(s);



    if(len!=a+b+1)

    {

        printf("No");

        return 0;

    }



    for(i=0; i<a; i++)

    {

        if(s[i]=='-')

        {

            cnt++;

        }

    }



    if(s[a]!='-') cnt++;

    for(i=a+1; i<a+b+1; i++)

    {

        if(s[i]=='-') cnt++;

    }



    if(cnt==0) printf("Yes");

    else printf("No");



    return 0;

}










// Faster C++ solution for the same problem (measured speedup: 5.233515774016605x):
#include <stdio.h>



int main() {

	int a,b;

	scanf("%d %d", &a, &b);

	char s[255];

	scanf("%s", s);

	int angka = 0;

	for(int i = 0; s[i] != '\0'; i++){

		if(s[a] != '-'){

			puts("No");

			return 0;

		}

		if(s[i] >= '0' && s[i] <= '9'){

			angka++;

		}

	}

	if(angka == a+b){

		puts("Yes");

	}else{

		puts("No");

	}

	return 0;

}
// Slower C++ solution:
#include <bits/stdc++.h>

using namespace std;



string pial[] = {"No", "Yes"};



int main() {

    int a, b;

    cin >> a >> b;

	string s;

	cin >> s;

	int ans = 1, pos = -1;

	for(int i = 0; i < a; i++) {

	    if(s[i] < '0' || s[i] > '9') {

	        ans = 0;

	        break;

	    }

	}

	if(s[a] != '-')

	    ans = 0;

	for(int i = a + 1; i < s.size(); i++) {

	    if(s[i] < '0' || s[i] > '9') {

	        ans = 0;

	        break;

	    }

	}

	cout << pial[ans] << endl;

	

	return 0;

}

// Faster C++ solution for the same problem (measured speedup: 5.071769743694543x):
#include <stdio.h>

#include <string.h>

int main() {

	int A,B;

	scanf("%d %d",&A,&B);

	getchar();

	

	char S[A+B+2] = {0};

	scanf("%s",&S);

	int len = strlen(S);

	int flag = 0;

	

	for (int i = 0; i < len; i++)

	{

		if (48 <= S[i] && S[i] <= 57)

		{

			continue;

		}

		else if (48 > S[i] || S[i] > 57)

		{

			if ( i == A )

			{

				flag = 1;

				continue;

			}

			else if (i != A)

			{

				flag = 0;

				break;

			}

		}

	}

	

	flag ? printf("Yes\n") : printf("No\n");

	

	return 0;

}
// Slower C++ solution:


#include<bits/stdc++.h>

using namespace std;



char s[100060];

int main()

{

    int n,b,a,len,i,cnt=0;

    scanf("%d %d %s",&a,&b,s);

    len=strlen(s);



    if(len!=a+b+1)

    {

        printf("No");

        return 0;

    }



    for(i=0; i<a; i++)

    {

        if(s[i]=='-')

        {

            cnt++;

        }

    }



    if(s[a]!='-') cnt++;

    for(i=a+1; i<a+b+1; i++)

    {

        if(s[i]=='-') cnt++;

    }



    if(cnt==0) printf("Yes");

    else printf("No");



    return 0;

}










// Faster C++ solution for the same problem (measured speedup: 5.002719278919931x):
#include <stdio.h>

#include <string.h>

int main() {

	int A,B;

	scanf("%d %d",&A,&B);

	getchar();

	

	char S[A+B+2] = {0};

	scanf("%s",&S);

	int len = strlen(S);

	int flag = 0;

	

	for (int i = 0; i < len; i++)

	{

		if (48 <= S[i] && S[i] <= 57)

		{

			continue;

		}

		else if (48 > S[i] || S[i] > 57)

		{

			if ( i == A )

			{

				flag = 1;

				continue;

			}

			else if (i != A)

			{

				flag = 0;

				break;

			}

		}

	}

	

	flag ? printf("Yes\n") : printf("No\n");

	

	return 0;

}
// Slower C++ solution:
#include <bits/stdc++.h>

using namespace std;



string pial[] = {"No", "Yes"};



int main() {

    int a, b;

    cin >> a >> b;

	string s;

	cin >> s;

	int ans = 1, pos = -1;

	for(int i = 0; i < a; i++) {

	    if(s[i] < '0' || s[i] > '9') {

	        ans = 0;

	        break;

	    }

	}

	if(s[a] != '-')

	    ans = 0;

	for(int i = a + 1; i < s.size(); i++) {

	    if(s[i] < '0' || s[i] > '9') {

	        ans = 0;

	        break;

	    }

	}

	cout << pial[ans] << endl;

	

	return 0;

}

// Faster C++ solution for the same problem (measured speedup: 5.289380745659696x):
#include <stdio.h>

#include <string.h>

int main(){

    int a, b;

    scanf("%d %d", &a, &b);

    int size = a + b + 1;

    char name[100];

    scanf("%s", name);

    int count = 0;

    if(name[a] == '-')// untuk mengecek hypen berada di letak a + 1 tidak, jika benar lanjut ke loop

    {

        for(int i = 0; i < size; i++){

            if (name[i] >= '0' && name[i] <= '9')//mengecek angka atau bukan di dalam string

            {

                count++;

            }

        }

        if(count == a + b) // jika count = banyak angka

        {

            printf("Yes\n");

        }

        else

        {

            printf("No\n");

        }

        

    }

    else//jika tidak print no

    {

        printf("No\n");

    }

    return 0;

}
// Slower C++ solution:


#include<bits/stdc++.h>

using namespace std;



char s[100060];

int main()

{

    int n,b,a,len,i,cnt=0;

    scanf("%d %d %s",&a,&b,s);

    len=strlen(s);



    if(len!=a+b+1)

    {

        printf("No");

        return 0;

    }



    for(i=0; i<a; i++)

    {

        if(s[i]=='-')

        {

            cnt++;

        }

    }



    if(s[a]!='-') cnt++;

    for(i=a+1; i<a+b+1; i++)

    {

        if(s[i]=='-') cnt++;

    }



    if(cnt==0) printf("Yes");

    else printf("No");



    return 0;

}










// Faster C++ solution for the same problem (measured speedup: 5.217367579188216x):
#include <stdio.h>

#include <string.h>

int main(){

    int a, b;

    scanf("%d %d", &a, &b);

    int size = a + b + 1;

    char name[100];

    scanf("%s", name);

    int count = 0;

    if(name[a] == '-')// untuk mengecek hypen berada di letak a + 1 tidak, jika benar lanjut ke loop

    {

        for(int i = 0; i < size; i++){

            if (name[i] >= '0' && name[i] <= '9')//mengecek angka atau bukan di dalam string

            {

                count++;

            }

        }

        if(count == a + b) // jika count = banyak angka

        {

            printf("Yes\n");

        }

        else

        {

            printf("No\n");

        }

        

    }

    else//jika tidak print no

    {

        printf("No\n");

    }

    return 0;

}
// Slower C++ solution:
#include <bits/stdc++.h>

using namespace std;



string pial[] = {"No", "Yes"};



int main() {

    int a, b;

    cin >> a >> b;

	string s;

	cin >> s;

	int ans = 1, pos = -1;

	for(int i = 0; i < a; i++) {

	    if(s[i] < '0' || s[i] > '9') {

	        ans = 0;

	        break;

	    }

	}

	if(s[a] != '-')

	    ans = 0;

	for(int i = a + 1; i < s.size(); i++) {

	    if(s[i] < '0' || s[i] > '9') {

	        ans = 0;

	        break;

	    }

	}

	cout << pial[ans] << endl;

	

	return 0;

}

// Faster C++ solution for the same problem (measured speedup: 5.2871969729255115x):
#include <stdio.h>



int main() {

	int A, B; 

	scanf("%d %d", &A, &B);

	

	int length = A + B + 1, cnt = 0;

	char S[50];

	scanf("%s", S);

	

	if (S[A] == '-') {

		for(int i = 0; i < length; i++) {

			if (S[i] >= '0' && S[i] <= '9') {

				cnt++;

			}

		}

		if (cnt == length -1) {

			printf("Yes\n");

		} else {

			printf("No\n");

		}

	} else {

			printf("No\n");

		}	

	return 0;

}
// Slower C++ solution:


#include<bits/stdc++.h>

using namespace std;



char s[100060];

int main()

{

    int n,b,a,len,i,cnt=0;

    scanf("%d %d %s",&a,&b,s);

    len=strlen(s);



    if(len!=a+b+1)

    {

        printf("No");

        return 0;

    }



    for(i=0; i<a; i++)

    {

        if(s[i]=='-')

        {

            cnt++;

        }

    }



    if(s[a]!='-') cnt++;

    for(i=a+1; i<a+b+1; i++)

    {

        if(s[i]=='-') cnt++;

    }



    if(cnt==0) printf("Yes");

    else printf("No");



    return 0;

}










// Faster C++ solution for the same problem (measured speedup: 5.21521353779632x):
#include <stdio.h>



int main() {

	int A, B; 

	scanf("%d %d", &A, &B);

	

	int length = A + B + 1, cnt = 0;

	char S[50];

	scanf("%s", S);

	

	if (S[A] == '-') {

		for(int i = 0; i < length; i++) {

			if (S[i] >= '0' && S[i] <= '9') {

				cnt++;

			}

		}

		if (cnt == length -1) {

			printf("Yes\n");

		} else {

			printf("No\n");

		}

	} else {

			printf("No\n");

		}	

	return 0;

}
// Slower C++ solution:
#include <bits/stdc++.h>

using namespace std;

#define pb push_back

#define mp make_pair

#define lb lower_bound

#define ub upper_bound

#define F first

#define S second

#define sz(x) (int)x.size()

#define all(x) (x).begin(), (x).end()

#define Blue ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0)

#define rep(i,a,n) for(int i=a;i<n;++i)

typedef vector<int> vi;

typedef long long ll;

const int mod=1e9+7;

 

const int dx[]={1,-1,0,0},dy[]={0,0,1,-1};

vector<ll>q;



ll getAns(ll m){

	ll x=0;

	auto it=upper_bound(all(q),m)-q.begin()-1;

	return it;

}



void solve(){

	ll n;

	cin>>n;

	ll ans=0;

	for(ll i=0;i<=1e4;i++){

		q.pb(((i+1)*i)/2);

	}

	for(ll i=2;i*i<=n;i++){

		ll cnt=0;

		while(n%i==0){

			cnt++;

			n/=i;

		}

		ans+=getAns(cnt);

	}

	if(n>1)ans++;

	cout<<ans;

 

}

 

 

int main(){

	Blue;

	int test=1;

	//cin>>test;

	while(test--)

		solve();

	return 0;

}

// Faster C++ solution for the same problem (measured speedup: 1.3758763643410699x):
#include <bits/stdc++.h>

using namespace std;

#define pb push_back

#define mp make_pair

#define lb lower_bound

#define ub upper_bound

#define F first

#define S second

#define sz(x) (int)x.size()

#define all(x) (x).begin(), (x).end()

#define Blue ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0)

#define rep(i,a,n) for(int i=a;i<n;++i)

typedef vector<int> vi;

typedef long long ll;

const int mod=1e9+7;

 

const int dx[]={1,-1,0,0},dy[]={0,0,1,-1};

vector<ll>q;



ll getAns(ll m){

	ll x=0;

	auto it=upper_bound(all(q),m)-q.begin()-1;

	return it;

}



void solve(){

	ll n;

	cin>>n;

	ll ans=0;

	for(ll i=0;i<=1e3;i++){

		q.pb(((i+1)*i)/2);

	}

	for(ll i=2;i*i<=n;i++){

		ll cnt=0;

		while(n%i==0){

			cnt++;

			n/=i;

		}

		ans+=getAns(cnt);

	}

	if(n>1)ans++;

	cout<<ans;

 

}

 

 

int main(){

	Blue;

	int test=1;

	//cin>>test;

	while(test--)

		solve();

	return 0;

}
// Slower C++ solution:
#include <bits/stdc++.h>

using namespace std;

#define pb push_back

#define mp make_pair

#define lb lower_bound

#define ub upper_bound

#define F first

#define S second

#define sz(x) (int)x.size()

#define all(x) (x).begin(), (x).end()

#define Blue ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0)

#define rep(i,a,n) for(int i=a;i<n;++i)

typedef vector<int> vi;

typedef long long ll;

const int mod=1e9+7;

 

const int dx[]={1,-1,0,0},dy[]={0,0,1,-1};

vector<ll>q;



ll getAns(ll m){

	ll x=0;

	auto it=upper_bound(all(q),m)-q.begin()-1;

	return it;

}



void solve(){

	ll n;

	cin>>n;

	ll ans=0;

	for(ll i=0;i<=1e4;i++){

		q.pb(((i+1)*i)/2);

	}

	for(ll i=2;i*i<=n;i++){

		ll cnt=0;

		while(n%i==0){

			cnt++;

			n/=i;

		}

		ans+=getAns(cnt);

	}

	if(n>1)ans++;

	cout<<ans;

 

}

 

 

int main(){

	Blue;

	int test=1;

	//cin>>test;

	while(test--)

		solve();

	return 0;

}

// Faster C++ solution for the same problem (measured speedup: 1.4618086569430964x):
#include <bits/stdc++.h>

using namespace std;

#define pb push_back

#define mp make_pair

#define lb lower_bound

#define ub upper_bound

#define F first

#define S second

#define sz(x) (int)x.size()

#define all(x) (x).begin(), (x).end()

#define Blue ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0)

#define rep(i,a,n) for(int i=a;i<n;++i)

typedef vector<int> vi;

typedef long long ll;

const int mod=1e9+7;

 

const int dx[]={1,-1,0,0},dy[]={0,0,1,-1};

vector<ll>q;



ll getAns(ll m){

	ll x=0;

	auto it=upper_bound(all(q),m)-q.begin()-1;

	return it;

}



void solve(){

	ll n;

	cin>>n;

	ll ans=0;

	for(ll i=0;i<=100;i++){

		q.pb(((i+1)*i)/2);

	}

	for(ll i=2;i*i<=n;i++){

		ll cnt=0;

		while(n%i==0){

			cnt++;

			n/=i;

		}

		ans+=getAns(cnt);

	}

	if(n>1)ans++;

	cout<<ans;

 

}

 

 

int main(){

	Blue;

	int test=1;

	//cin>>test;

	while(test--)

		solve();

	return 0;

}
// Slower C++ solution:
#include <bits/stdc++.h>

using namespace std;

#define pb push_back

#define mp make_pair

#define lb lower_bound

#define ub upper_bound

#define F first

#define S second

#define sz(x) (int)x.size()

#define all(x) (x).begin(), (x).end()

#define Blue ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0)

#define rep(i,a,n) for(int i=a;i<n;++i)

typedef vector<int> vi;

typedef long long ll;

const int mod=1e9+7;

 

const int dx[]={1,-1,0,0},dy[]={0,0,1,-1};

vector<ll>q;



ll getAns(ll m){

	ll x=0;

	auto it=upper_bound(all(q),m)-q.begin()-1;

	return it;

}



void solve(){

	ll n;

	cin>>n;

	ll ans=0;

	for(ll i=0;i<=1e4;i++){

		q.pb(((i+1)*i)/2);

	}

	for(ll i=2;i*i<=n;i++){

		ll cnt=0;

		while(n%i==0){

			cnt++;

			n/=i;

		}

		ans+=getAns(cnt);

	}

	if(n>1)ans++;

	cout<<ans;

 

}

 

 

int main(){

	Blue;

	int test=1;

	//cin>>test;

	while(test--)

		solve();

	return 0;

}

// Faster C++ solution for the same problem (measured speedup: 1.4759604447877117x):
#include <bits/stdc++.h>

using namespace std;

#define pb push_back

#define mp make_pair

#define lb lower_bound

#define ub upper_bound

#define F first

#define S second

#define sz(x) (int)x.size()

#define all(x) (x).begin(), (x).end()

#define Blue ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0)

#define rep(i,a,n) for(int i=a;i<n;++i)

typedef vector<int> vi;

typedef long long ll;

const int mod=1e9+7;

 

const int dx[]={1,-1,0,0},dy[]={0,0,1,-1};

vector<ll>q;



ll getAns(ll m){

	ll x=0;

	auto it=upper_bound(all(q),m)-q.begin()-1;

	return it;

}



void solve(){

	ll n;

	cin>>n;

	ll ans=0;

	for(ll i=0;i<=60;i++){

		q.pb(((i+1)*i)/2);

	}

	for(ll i=2;i*i<=n;i++){

		ll cnt=0;

		while(n%i==0){

			cnt++;

			n/=i;

		}

		ans+=getAns(cnt);

	}

	if(n>1)ans++;

	cout<<ans;

 

}

 

 

int main(){

	Blue;

	int test=1;

	//cin>>test;

	while(test--)

		solve();

	return 0;

}
// Slower C++ solution:
#include <bits/stdc++.h>

using namespace std;

#define pb push_back

#define mp make_pair

#define lb lower_bound

#define ub upper_bound

#define F first

#define S second

#define sz(x) (int)x.size()

#define all(x) (x).begin(), (x).end()

#define Blue ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0)

#define rep(i,a,n) for(int i=a;i<n;++i)

typedef vector<int> vi;

typedef long long ll;

const int mod=1e9+7;

 

const int dx[]={1,-1,0,0},dy[]={0,0,1,-1};

vector<ll>q;



ll getAns(ll m){

	ll x=0;

	auto it=upper_bound(all(q),m)-q.begin()-1;

	return it;

}



void solve(){

	ll n;

	cin>>n;

	ll ans=0;

	for(ll i=0;i<=1e4;i++){

		q.pb(((i+1)*i)/2);

	}

	for(ll i=2;i*i<=n;i++){

		ll cnt=0;

		while(n%i==0){

			cnt++;

			n/=i;

		}

		ans+=getAns(cnt);

	}

	if(n>1)ans++;

	cout<<ans;

 

}

 

 

int main(){

	Blue;

	int test=1;

	//cin>>test;

	while(test--)

		solve();

	return 0;

}

// Faster C++ solution for the same problem (measured speedup: 1.4373888804138186x):
#include <bits/stdc++.h>

using namespace std;

#define pb push_back

#define mp make_pair

#define lb lower_bound

#define ub upper_bound

#define F first

#define S second

#define sz(x) (int)x.size()

#define all(x) (x).begin(), (x).end()

#define Blue ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0)

#define rep(i,a,n) for(int i=a;i<n;++i)

typedef vector<int> vi;

typedef long long ll;

const int mod=1e9+7;

 

const int dx[]={1,-1,0,0},dy[]={0,0,1,-1};

vector<ll>q;



ll getAns(ll m){

	ll x=0;

	auto it=upper_bound(all(q),m)-q.begin()-1;

	return it;

}



void solve(){

	ll n;

	cin>>n;

	ll ans=0;

	for(ll i=0;i<=30;i++){

		q.pb(((i+1)*i)/2);

	}

	for(ll i=2;i*i<=n;i++){

		ll cnt=0;

		while(n%i==0){

			cnt++;

			n/=i;

		}

		ans+=getAns(cnt);

	}

	if(n>1)ans++;

	cout<<ans;

 

}

 

 

int main(){

	Blue;

	int test=1;

	//cin>>test;

	while(test--)

		solve();

	return 0;

}
// Slower C++ solution:
#include <bits/stdc++.h>

using namespace std;

#define pb push_back

#define mp make_pair

#define lb lower_bound

#define ub upper_bound

#define F first

#define S second

#define sz(x) (int)x.size()

#define all(x) (x).begin(), (x).end()

#define Blue ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0)

#define rep(i,a,n) for(int i=a;i<n;++i)

typedef vector<int> vi;

typedef long long ll;

const int mod=1e9+7;

 

const int dx[]={1,-1,0,0},dy[]={0,0,1,-1};

vector<ll>q;



ll getAns(ll m){

	ll x=0;

	auto it=upper_bound(all(q),m)-q.begin()-1;

	return it;

}



void solve(){

	ll n;

	cin>>n;

	ll ans=0;

	for(ll i=0;i<=1e4;i++){

		q.pb(((i+1)*i)/2);

	}

	for(ll i=2;i*i<=n;i++){

		ll cnt=0;

		while(n%i==0){

			cnt++;

			n/=i;

		}

		ans+=getAns(cnt);

	}

	if(n>1)ans++;

	cout<<ans;

 

}

 

 

int main(){

	Blue;

	int test=1;

	//cin>>test;

	while(test--)

		solve();

	return 0;

}

// Faster C++ solution for the same problem (measured speedup: 1.5408819459619068x):
#include <bits/stdc++.h>

using namespace std;

#define pb push_back

#define mp make_pair

#define lb lower_bound

#define ub upper_bound

#define F first

#define S second

#define sz(x) (int)x.size()

#define all(x) (x).begin(), (x).end()

#define Blue ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0)

#define rep(i,a,n) for(int i=a;i<n;++i)

typedef vector<int> vi;

typedef long long ll;

const int mod=1e9+7;

 

const int dx[]={1,-1,0,0},dy[]={0,0,1,-1};

vector<ll>q;



ll getAns(ll m){

	ll x=0;

	auto it=upper_bound(all(q),m)-q.begin()-1;

	return it;

}



void solve(){

	ll n;

	cin>>n;

	ll ans=0;

	for(ll i=0;i<=9;i++){

		q.pb(((i+1)*i)/2);

	}

	for(ll i=2;i*i<=n;i++){

		ll cnt=0;

		while(n%i==0){

			cnt++;

			n/=i;

		}

		ans+=getAns(cnt);

	}

	if(n>1)ans++;

	cout<<ans;

 

}

 

 

int main(){

	Blue;

	int test=1;

	//cin>>test;

	while(test--)

		solve();

	return 0;

}
// Slower C++ solution:
#include <bits/stdc++.h>

using namespace std;

#define pb push_back

#define mp make_pair

#define lb lower_bound

#define ub upper_bound

#define F first

#define S second

#define sz(x) (int)x.size()

#define all(x) (x).begin(), (x).end()

#define Blue ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0)

#define rep(i,a,n) for(int i=a;i<n;++i)

typedef vector<int> vi;

typedef long long ll;

const int mod=1e9+7;

 

const int dx[]={1,-1,0,0},dy[]={0,0,1,-1};

vector<ll>q;



ll getAns(ll m){

	ll x=0;

	auto it=upper_bound(all(q),m)-q.begin()-1;

	return it;

}



void solve(){

	ll n;

	cin>>n;

	ll ans=0;

	for(ll i=0;i<=1e4;i++){

		q.pb(((i+1)*i)/2);

	}

	for(ll i=2;i*i<=n;i++){

		ll cnt=0;

		while(n%i==0){

			cnt++;

			n/=i;

		}

		ans+=getAns(cnt);

	}

	if(n>1)ans++;

	cout<<ans;

 

}

 

 

int main(){

	Blue;

	int test=1;

	//cin>>test;

	while(test--)

		solve();

	return 0;

}

// Faster C++ solution for the same problem (measured speedup: 1.513417988415983x):
#include <bits/stdc++.h>

using namespace std;

#define pb push_back

#define mp make_pair

#define lb lower_bound

#define ub upper_bound

#define F first

#define S second

#define sz(x) (int)x.size()

#define all(x) (x).begin(), (x).end()

#define Blue ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0)

#define rep(i,a,n) for(int i=a;i<n;++i)

typedef vector<int> vi;

typedef long long ll;

const int mod=1e9+7;

 

const int dx[]={1,-1,0,0},dy[]={0,0,1,-1};

vector<ll>q;



ll getAns(ll m){

	ll x=0;

	auto it=upper_bound(all(q),m)-q.begin()-1;

	return it;

}



void solve(){

	ll n;

	cin>>n;

	ll ans=0;

	for(ll i=0;i<=8;i++){

		q.pb(((i+1)*i)/2);

	}

	for(ll i=2;i*i<=n;i++){

		ll cnt=0;

		while(n%i==0){

			cnt++;

			n/=i;

		}

		ans+=getAns(cnt);

	}

	if(n>1)ans++;

	cout<<ans;

 

}

 

 

int main(){

	Blue;

	int test=1;

	//cin>>test;

	while(test--)

		solve();

	return 0;

}
// Slower C++ solution:
#include <bits/stdc++.h>

using namespace std;

#define rep(i, n) for (int i = 0; i < (int)(n); i++)

using ll = long long;

using vi = vector<int>;

using vvi = vector<vi>;



int main(){

  ll n;

  cin >> n;

  vector<ll> kosuu(10000,0);

  ll ruton = pow(n, 0.5);

  ll i=2, j=-1;

  int ans = 0;

  while(n!=1){

    if(n%i==0)j++;

    while(n%i==0){

      kosuu[j]++;

      n/=i;

    }

    i++;

    if(i==ruton){

      if(n==1) break;

      else{

        ans++;

        break;

      }

    }

  }



  rep(i,10000){

    int j=1;

    while(kosuu[i]-j >= 0){

      kosuu[i] -= j;

      j++;

      ans++;

    }

  }

  cout << ans << endl;

}


// Faster C++ solution for the same problem (measured speedup: 1.138703463264313x):
#include <bits/stdc++.h>

using namespace std;

#define rep(i, n) for (int i = 0; i < (int)(n); i++)

using ll = long long;

using vi = vector<int>;

using vvi = vector<vi>;



int main(){

  ll n;

  cin >> n;

  vector<pair<ll, int>> fs;

  for(ll i=2; i*i<=n; i++){

    int kosuu=0;

    while(n%i==0){

      n/=i;

      kosuu++;

    }

    fs.emplace_back(i, kosuu);

  }

  if(n!=1) fs.emplace_back(n, 1);

  int ans=0;

  for(auto p: fs){

    int i=1;

    while(p.second-i >= 0){

      p.second -= i;

      i++;

      ans++;

    }

  }

  cout << ans << endl;

}
// Slower C++ solution:
#include <bits/stdc++.h>

using namespace std;

#define rep(i, n) for (int i = 0; i < (int)(n); i++)

using ll = long long;

using vi = vector<int>;

using vvi = vector<vi>;



int main(){

  ll n;

  cin >> n;

  vector<ll> kosuu(10000,0);

  ll ruton = pow(n, 0.5);

  ll i=2, j=-1;

  int ans = 0;

  while(n!=1){

    if(n%i==0)j++;

    while(n%i==0){

      kosuu[j]++;

      n/=i;

    }

    i++;

    if(i==ruton){

      if(n==1) break;

      else{

        ans++;

        break;

      }

    }

  }



  rep(i,10000){

    int j=1;

    while(kosuu[i]-j >= 0){

      kosuu[i] -= j;

      j++;

      ans++;

    }

  }

  cout << ans << endl;

}


// Faster C++ solution for the same problem (measured speedup: 1.1385852500534297x):
#include <bits/stdc++.h>

using namespace std;

#define rep(i, n) for (int i = 0; i < (int)(n); i++)

using ll = long long;

using vi = vector<int>;

using vvi = vector<vi>;



int main(){

  ll n;

  cin >> n;

  vector<pair<int, ll>> fs;

  for(ll i=2; i*i<=n; i++){

    int kosuu=0;

    while(n%i==0){

      n /= i;

      kosuu++;

    }

    fs.emplace_back(i, kosuu);

  }

  if(n!=1) fs.emplace_back(n, 1);

  int ans=0;

  for(auto p: fs){

    int i=1;

    while(p.second - i >= 0){

      p.second -= i;

      i++;

      ans++;

    }

  }

  cout << ans << endl;

}