×
解除綁定,重新設定系統帳號的密碼
您的系統帳號 ID:
您的系統帳號:
您的帳號暱稱:
設定新密碼:
設定新密碼:
×
請輸入要加入的「課程代碼」
請向開設課程的使用者索取「課程代碼」
分類題庫
解題動態
排行榜
討論區
競賽區
登入
註冊
發表新討論
#45022: C++解答
xiul024ase55@gmail.com
(真理老師)
學校 : 不指定學校
編號 : 293305
×
傳送站內訊息
傳給:
主題:
內容:
來源 : [140.128.102.197]
最後登入時間 :
2025-01-06 17:15:55
e629.
11728 - Alternate Task
--
UVA
| From: [118.163.199.168] | 發表日期 : 2025-01-02 21:30
關鍵重點:遍歷1-n的值i;把i用根號拆成兩半,個別將i的因數相加乘總和sum,檢查sum是否符合n的值,直接輸出
#include <iostream>
#include <cmath>
using namespace std;
int main(){
int n,casenum=1;
while(cin>>n){
if(n==0){
break;
}
cout<<"Case "<<casenum<<": ";
casenum++;
if(n==1){
cout<<"1"<<endl;
continue;
}
int ans=-1;
for (int i=n-1;i>0;i--){
int sum=0;
for (int j=1;j<=sqrt(i);j++){
if(i%j==0){
sum+=j;
if(j*j!=i){
sum+=i/j;
}
}
}
if(sum==n){
ans=i;
break;
}
}
cout<<ans<<endl;
}
}
ZeroJudge Forum