#33623: 最後一個測資TLE 求助


s110151@student.cysh.cy.edu.tw (a6a6a6)

學校 : 國立嘉義高級中學
編號 : 203583
來源 : [36.238.95.106]
最後登入時間 :
2024-11-22 20:49:46
c184. 盈虧互補 -- 板橋高中教學題 | From: [218.166.171.188] | 發表日期 : 2023-01-14 14:33

#include <iostream>
#include <vector>
using namespace std;
int main (void)
{    
    ios::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);
    int m=0,n=0,u,s,q,r,p;
    int i;
    cin>>i;
    vector<int>a;
    vector<int>b;
    int sum[2];
    for(u=1;u<i;u++)
        if(i%u==0){
            a.push_back(u);
            sum[0]=u+sum[0];
            n++;
        }
    for(s=1;s<sum[0];s++)
        if(sum[0]%s==0){
            b.push_back(s);
            sum[1]=sum[1]+s;
            m++;
        }    
    if(sum[0]==i){
        n=n-1;
            for(q=0;q<n;q++){
                cout<<a[q]<<"+";
            }
            cout<<a[q];
        cout<<"="<<i<<endl;
        cout<<i<<" is perfect.";
    }    
    else if(sum[1]==i)
        {    
        n=n-1;
            for(q=0;q<n;q++){
                cout<<a[q]<<"+";
            }    
            cout<<a[q];
            cout<<"="<<sum[0]<<endl;
        m=m-1;
            for(p=0;p<m;p++)
            {
                cout<<b[p]<<"+";
            }    
            cout<<b[p];
            cout<<"="<<i<<endl;
            cout<<i<<" and "<<sum[0]<<" are friends.";
        }
    else
        {        
        n=n-1;
            for(q=0;q<n;q++)
                cout<<a[q]<<"+";
            cout<<a[q];
            cout<<"="<<sum[0]<<endl;
            if(sum[1]!=0)
        {
        m=m-1;
            for(p=0;p<m;p++)
            {
                cout<<b[p]<<"+";
            }    
            cout<<b[p];}
            cout<<"="<<sum[1]<<endl;
            cout<<i<<" has no friends.";
        }
        
    
        
 return 0;
 
}

 
#33691: Re: 最後一個測資TLE 求助


cges30901 (cges30901)

學校 : 不指定學校
編號 : 30877
來源 : [39.9.74.255]
最後登入時間 :
2024-10-14 22:20:08
c184. 盈虧互補 -- 板橋高中教學題 | From: [27.247.131.122] | 發表日期 : 2023-01-23 21:29

#include
#include
using namespace std;
int main (void)
{    
    ios::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);
    int m=0,n=0,u,s,q,r,p;
    int i;
    cin>>i;
    vectora;
    vectorb;
    int sum[2];
    for(u=1;u        if(i%u==0){
            a.push_back(u);
            sum[0]=u+sum[0];
            n++;
        }
    for(s=1;s        if(sum[0]%s==0){
            b.push_back(s);
            sum[1]=sum[1]+s;
            m++;
        }    
    if(sum[0]==i){
        n=n-1;
            for(q=0;q
                cout<            }
            cout<        cout<<"="<        cout<    }    
    else if(sum[1]==i)
        {    
        n=n-1;
            for(q=0;q
                cout<            }    
            cout<            cout<<"="<        m=m-1;
            for(p=0;p            {
                cout<            }    
            cout<            cout<<"="<            cout<        }
    else
        {        
        n=n-1;
            for(q=0;q                cout<            cout<            cout<<"="<            if(sum[1]!=0)
        {
        m=m-1;
            for(p=0;p            {
                cout<            }    
            cout<            cout<<"="<            cout<        }
        
    
        
 return 0;
 
}


找因數只要算到平方根就好了

 
ZeroJudge Forum