Project Euler:Problem 47 Distinct primes factors
The first two consecutive numbers to have two distinct prime factors are:
14 = 2 × 7
15 = 3 × 5
The first three consecutive numbers to have three distinct prime factors are:
644 = 2² × 7 × 23
645 = 3 × 5 × 43
646 = 2 × 17 × 19.
Find the first four consecutive integers to have four distinct prime factors. What is the first of these numbers?
#include <iostream> #include <map> using namespace std; int factors(int n) { map<int, int>mp; int i = 2; while (n > 1) { if (n%i == 0) { mp[i]++; n /= i; } else i++; } return mp.size(); } int main() { for (int i = 20; i <= 1000000; i++) { if (factors(i) == 4) { if (factors(i + 1) == 4) { if (factors(i + 2) == 4) { if (factors(i + 3) == 4) { cout << i << endl; break; } } } } } system("pause"); return 0; }