VincentEam 2013-11-17 00:57:00
点我顶贴
收藏
删除
#include <stdio.h>
int main(){
int n;
scanf("%d",&n);
for(int x=2;x<n;x++)
{
int z=n%x;
if(z==0)
{
int y=n/x;
if(y>x) {printf("%d",y);break;}
else {printf("%d",x);break;}
}
}
return 0;
}
#1 反逆のR@2014-05-08 08:52:07
32636
回复
删除
显然LZ没有意识到第一个找到的一定是较小的,因此完全没有必要判断。以下是简洁版
#include <stdio.h>
int main()
{
long long n,i=2;
scanf("%lld",&n);
while (1)
{
if (!(n%i)) break;
i++;
}
printf("%lld",n/i);
return 0;
}