Problem:
Score: 200 points

Problem Statement

The number 105 is quite special - it is odd but still it has eight divisors.
Now, your task is this: how many odd numbers with exactly eight positive divisors are there between 1 and N (inclusive)?

Constraints

N is an integer between 1 and 200 (inclusive).

Input

Input is given from Standard Input in the following format:

N

Output

Print the count.

Sample Input 1

105

Sample Output 1

1

Among the numbers between 1 and 105, the only number that is odd and has exactly eight divisors is 105.

Sample Input 2

7

Sample Output 2

0

1 has one divisor. 3, 5 and 7 are all prime and have two divisors. Thus, there is no number that satisfies the condition.

Solution in C++14 (GCC 5.4.1) (judge verdict: Wrong Answer)

#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
#include <cmath>
#include <map>
#include <numeric>
using namespace std;
typedef long long ll;

int power(int a,int b){
    int res=1;
    while(b){
        if(b%2)res*=a;
        a*=a;
        b/=2;
    }
    return res;
}

int main(){
    int n;cin>>n;
    vector<int> v={3,5,7,11,13,17},ans;
    ans.push_back(128);
    ans.push_back(135);
    ans.push_back(189);
    for(int i=0;i<6;i++)for(int j=i+1;j<6;j++)for(int k=j+1;k<6;k++){
        if(v[i]*v[j]*v[k]<=200)ans.push_back(v[i]*v[j]*v[k]);
    
    }
    
    int a=0;
    for(int i=1;i<=n;i++){
        if(find(ans.begin(),ans.end(),i)!=ans.end())a++;
    }
    cout<<a;
}