题意:
数据范围:n<=1e10
解法:
1.如果n是偶数,那么一定是一直减2,答案为n/2 2.如果n是奇数,找到n的最小质因子,减去之后就变成偶数了,即情况1。
code:
#include<bits/stdc++.h>
using namespace std
;
#define int long long
const int maxm
=1e6+5;
int n
;
int getmi(int x
){
for(int i
=2;i
*i
<=x
;i
++){
if(x
%i
==0)return i
;
}
return x
;
}
signed main(){
cin
>>n
;
if(n
%2==0){
cout
<<n
/2<<endl
;
}else{
int mi
=getmi(n
);
n
-=mi
;
cout
<<n
/2+1<<endl
;
}
return 0;
}
转载请注明原文地址:https://blackberry.8miu.com/read-11377.html