Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<bits/stdc++.h>
- using namespace std;
- bool isprime[10000005];
- vector<int> prime;
- void sieve(int n){
- isprime[1] = true;
- for(int i = 2; i * i <= n; i++){
- if(isprime[i] == false){
- for(int j = i + i; j <= n; j += i){
- isprime[j]=true;
- }
- }
- }
- for(int i = 2; i <= n; i++){
- if(isprime[i]==false){
- prime.push_back(i);
- }
- }
- }
- int main()
- {
- int n;
- // cout<<"LL"<<endl;
- sieve(1000000);
- // cout<<"RR"<<endl;
- int len = prime.size();
- while(1){
- scanf("%d",&n);
- if(n==0){
- break;
- }
- int flag = 0, l , r;
- for(int i = 0; i < len && prime[i] <= n / 2; i++){
- if( !isprime[n - prime[i]] ){
- l = prime[i], r = n - prime[i];
- flag = 1;
- break;
- }
- }
- printf("%d:\n", n);
- if(flag==1){
- printf("%d+%d\n",l,r);
- }
- else{
- printf("NO WAY!\n");
- }
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement