6.求最长 的连续因子,思路就是从2找到sqrt(n) 然后取最大的,但是改了半天还是wa了一个点,代码:

#include<bits/stdc++.h>
using namespace std;
#define LL long long
vector<int>p;
int main()
{
    LL t;
    cin>>t;
    LL v=sqrt(t);
    LL r=t;
    LL ans=0,num=0;
    for(LL i=2;i<=v+1;i++)
    {
         num=0;
        LL cnt=0;
        t=r;
        while(1)
        {
            if(t%(i+cnt)==0)
            {
                t=t/(i+cnt);
                cnt++;
                num++;
            }
            else
            {
                if(num>ans)
                {
                    ans=num;
                    p.clear();
                    for(int j=0;j<ans;j++)
                    {
                        p.push_back(j+i);
                    }
                }
                break;
            }
        }
    }
    cout<<ans<<endl;
    for(int i=0;i<p.size();i++)
    {
        if(i==0)cout<<p[i];
        else cout<<"*"<<p[i];
    }
}
View Code

然后就知道,我是从2到sqrt(n)的,如果n是个质数那就取不到,所以如果答案没有的话,就是输出他本身,代码:

#include<bits/stdc++.h>
using namespace std;
#define LL long long
vector<int>p;
int main()
{
    LL t;
    cin>>t;
    LL v=sqrt(t);
    LL r=t;
    LL ans=0,num=0;
    for(LL i=2;i<=v+100000;i++)
    {
         num=0;
        LL cnt=0;
        t=r;
        while(1)
        {
            if(t%(i+cnt)==0)
            {
                t=t/(i+cnt);
                cnt++;
                num++;
            }
            else
            {
                if(num>ans)
                {
                    ans=num;
                    p.clear();
                    for(int j=0;j<ans;j++)
                    {
                        p.push_back(j+i);
                    }
                }
                break;
            }
        }
    }
    if(p.size()==0)
    {
        cout<<1<<endl;
        cout<<t<<endl;
    }
    else
    {
            cout<<ans<<endl;
        for(int i=0;i<p.size();i++)
        {
            if(i==0)cout<<p[i];
            else cout<<"*"<<p[i];
        }
    }
    
}
View Code

 

posted on 2020-11-08 20:37  小灰灰的父亲  阅读(70)  评论(0编辑  收藏  举报