Problem Description
Everybody knows any number can be combined by the prime number.
Now, your task is telling me what position of the largest prime factor.
The position of prime 2 is 1, prime 3 is 2, and prime 5 is 3, etc.
Specially, LPF(1) = 0.
Input
Each line will contain one integer n(0 < n < 1000000).
Output
Output the LPF(n).
Sample Input
1
2
3
4
5
Sample Output
0
1
2
1
3
#include<iostream>
#include<cmath>
using namespace std;
bool isPrime(int n)
{
for (int i = 2; i <= sqrt(n); ++i)
{
if (n % i == 0)
return false;
}
return true;
}
int main()
{
int num;
while(cin >> num)
{
if (isPrime(num))
{
int pos = 0;
if (num > 1)
pos = 1;
for (int i = 3; i <= num; i += 2)
{
if (isPrime(i))
pos++;
}
cout << "position is:" << pos << endl;
}
else
cout << "position is:" << 1 <<endl;
}
return 0;
}
不是素数的就默认position为1