HDU5108 Alexandra and Prime Numbers

Alexandra and Prime Numbers

题目链接:

http://acm.hdu.edu.cn/showproblem.php?pid=5108

解题思路:

BestCoder官方题解:

显然N/M应该是N的最大质因子,这样才能使得M最小。暴力找到最大质因子后用N除就能算出M了。
唯一无解的情况是N=1。
AC代码:

#include <iostream>
#include <cstdio>
using namespace std;

int main(){
    int n;
    while(scanf("%d",&n)!=EOF){
        if(n == 1)
            printf("0\n");
        else{
            int i,m = n,ans = n;
            for(i = 2; i*i <= m; i++)
                while(n%i == 0){
                    n = n/i;
                    ans = i;
                }
            if(n > 1)
                ans = n;
            printf("%d\n",m/ans);
        }
    }
    return 0;
}




你可能感兴趣的:(BestCoder,趣味数学)