题目描述
对于一个正整数n,如果n除以某个正整数d所得的余数为0,我们称d是n的约数。显然1和n一定是n的约数,请问对于给定的n(n≥2),除了n本身以外,最大的约数是多少?
输入格式
共一行,包含一个正整数n。
输出格式
共一行,包含一个正整数,表示n除了自身以外的最大约数。
输入/输出例子1
输入:
15
输出:
5
样例解释
【样例解释】
15的约数有1,3,5,15,除了15本身以外的最大约数为5。
【数据范围】
对于30%的数据,n≤100;
对于50%的数据,n≤10^6;
对于100%的数据,2≤n≤2×10^9 。
代码
#include<bits/stdc++.h>
using namespace std;
long long i,n,r=1,w;
int main() {
cin>>n;
for(i=2; i<n; i++)
{
if(i!=n&&n%i==0)
{
r=i;
w++;
break;
}
}
if(w!=1)
cout<<r;
else
cout<<n/r;
return 0;
}