B.以贰之名
== Description ==
众所周知,DV学长和TYY学长是关系非常好的基友,他们经常以“儿子“互称。有一天DV学长给TYY学长出了一道题,如果TYY学长解出了这道题就可以拥有一半的糖果,否则DV学长将吃掉所有的糖果。TYY学长非常想吃到糖果,你能帮帮她嘛?
具体来说:现在有从2到n这n-1个的数,现在要删除若干个数,使得剩下的数中,一定有一个数能被剩下的数整除,问最少要删除多少个数?Input
输入只有一个数n,表示有2~n这n-1个数(1<=n<=1e9)。Output
需要最少删除的数的个数。
Sample Input5
4
3Sample Output
2
1
1Hint
n=5时,有2、3、4、5这四个数,删掉3、5后,才能保证有一个数2能被剩下的数2、4整除思路
不难发现,x=2 时,删除的数最少。因此贪心选择留下 2,删除所有奇数。
源代码
#include<iostream>
using namespace std;
int main()
{
int n,a;
cin>>n;
a = (n-1)/2;//不能被2整除的个数
cout << a << endl;
return 0;
}