题目链接
所有不是质数的数的最小质因子是2或3或5或7。
题解:1,如果n是素数,那么n-n=0执行一次减法。,2,如果n是合数,那么它的最小素因子要么是2要么3要么5要么7,再细分如果n是偶数则它的最小素因子是2,如果n是奇数,它的最小素因子是3/5/7,但无论如何此时的n减去它的最小素因子都是偶数,偶数的最小素因子是2,偶数减2还是偶数,所以对于这种情况只需找出n的最小素因子x,然后让n减去它的最小素因子x,这算执行了一次减法,然后还需执行(n-x)/2次减法,共需执行1+(n-x)/2次减法。
int main()
{
ll n;
cin >> n;
bool flag = 0;
ll x;
for(ll i = 2;i <= sqrt(n);i ++)
{
if(n % i == 0)
{
x = i;
flag = 1;
break;
}
}
if(flag)
cout << 1+(n-x)/2 << '\n';
else
cout << '1' << '\n';
return 0;
}