质因素分解练习题。
题目大意:给出一个数N,求一个最小的正整数M,使 N / M 为素数。附链接:http://acm.hdu.edu.cn/showproblem.php?pid=5108。
大体思路:这道题,反过来想一下,既是求关于 N 的最大的质因素 maxn,使 N / maxn 最小。
以下为ac的代码:
#include<stdio.h>
#include<iostream>
using namespace std;
int main(){
int n;
while(~scanf("%d",&n)){
if(n==1){
printf("0\n");
continue;
}
int maxn=0;
int x=n;
for(int i=2;i*i<=n;i++){
if(x%i==0){
maxn=max(maxn,i);
while(x%i==0)
x/=i;
}
}
maxn=max(maxn,x);
printf("%d\n",n/maxn);
}
}

本文介绍了一道关于质因数分解的编程题,旨在寻找一个数的最大质因数,使得该数除以该质因数后的结果是最小素数。通过分析题目并提供AC代码实现,帮助读者理解质因数分解的算法思想。
151

被折叠的 条评论
为什么被折叠?



