Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cstring>
- #define nmax 100001
- using namespace std;
- char s[nmax];
- long long dp[nmax];
- int n;
- int prim(int x,int y)
- {
- int n=0;
- for(int i=x;i<=y;++i)
- n=n*10+s[i]-'0';
- if(n<=1)
- return 0;
- if(n==2)
- return n;
- if(n%2==0)
- return 0;
- for(int i=3;i*i<=n;i+=2)
- if(n%i==0)
- return 0;
- return n;
- }
- void din()
- {
- int val;
- dp[0]=0;
- for(int i=1;i<=n;++i)
- {
- dp[i]=0;
- for(int j=max(1,i-5);j<=i;j++)
- val=prim(j,i),dp[i]=max(dp[i],dp[j-1]+val);
- }
- }
- int main()
- {
- cin>>(s+1);
- n=strlen(s+1);
- din();
- cout<<dp[n]<<'\n';
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement