纯模拟,很简单
//(water problem)
#include<bits/stdc++.h>
using namespace std;
const int mx=15;
string s; //字符串方便
int a[mx],b[mx],i;
int C(string s){ //串转数
int ans=0;
while(s!=""){
ans=ans*10+(s[0]-'0');
s.erase(0,1);
}
return ans;
}
bool F(int n){ //素数
for(int i=2;i<n;i++){
if(n%i==0) return false;
}
return true;
}
int main()
{
ios::sync_with_stdio(false); //优化
cin>>s;
int l=s.size(),bl=0;
for(i=0;i<l-1;i++){
string s1="",s2=""; //前,后
for(int j=0;j<=i;j++) s1+=s[j]; //前面的
for(int j=i+1;j<=l-1;j++) s2+=s[j]; //后面的
int p=C(s1),q=C(s2); //加
a[i]=p+q; //导入
//cout<<p<<' '<<q<<endl;
//cout<<a[i]<<endl;
}
for(i=0;i<l-1;i++){
if(F(a[i])){
b[bl]=a[i];bl++; //判断素数,求b数组的长度
//cout<<b[bl];
}
}
//cout<<bl<<endl;
if(bl!=0)
cout<<*min_element(b,b+bl); //最小值
else cout<<"-1"; //没有
return 0;
}