约数(divisor)
2019年海淀区挑战赛小学组
题目描述
对于一个正整数n,如果n除以某个正整数d所得的余数为0,我们称d是n的约数。显然1和n一定是n的约数,请问对于给定的n(n>=2),除了n本身以外,最大的约数是多少?
输入
共一行,包含一个正整数n
输出
共一行,包含一个正整数,表示n除了自身以外的最大约数
样例输入
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;
int main() {
int i,n,r=1,w=0;
scanf("%d",&n);
for(i=2; i<n; i++) {
if(i!=n&&n%i==0) {
r=i;
w++;
break;
}
}
if(w!=1) {
printf("%d\n",r);
} else {
printf("%d\n",n/r);
}
return 0;
}