hdu 5108

来源:互联网 发布:卖家如何退出农村淘宝 编辑:程序博客网 时间:2024/06/09 18:57
//题意是给一个数N,然后让你求M,使得N/M为素数,并且M的值最小
//思路呢,大概有两种,一个是遍历素数求解的,不过数据太大不现实
//另外一种就是质因数求解,for循环是遍历质因数,然后while循环是剔除相同的质因数
//最后你可以判定剩下来的如果非1,则是最大素数....
#include <iostream>using namespace std;int main(){    int a,n,i,k;    ios::sync_with_stdio;    while(cin>>a)    {        if(a == 1) cout<<"0"<<endl;        else        {            int c = a;            for(i=2; i*i<=a; i++)            {                while(a%i==0)                {                    a/=i;                    k=i;                }            }            //cout<<a<<endl;            if(a == 1)  cout<<c/k<<endl;                else                    cout<<c/a<<endl;            }    }}

0 0
原创粉丝点击