完数的判断

用for循环嵌套,第一个for循环i遍历从3到N,对于每一个i,用for循环遍历j从1到i-1,求因数和s,如果因数和s与i相等,则按要求格式输出。
cpp
#include<bits/stdc++.h>
using namespace std;
int main(){
int N;
cin >> N;
for(int i = 3;i <= N;i++){
int s = 0;
for(int j = 1;j < i;j++){
if(i%j == 0){s+=j;}
}
if(i == s){
cout << i << " its factors are ";
for(int j = 1;j < i;j++){if(i%j == 0){cout << j << ' ';}}
cout << endl;
}
}
return 0;
}
有规律的数列求和

for循环累计和即可。
cpp
#include<bits/stdc++.h>
using namespace std;
double dp[1000];
int main(){
int N;
cin >> N;
double out = 3.5;
dp[1] = 2.0;
dp[2] = 3.0;
for(int i = 3;i <= N;i++){
dp[i] = dp[i-1] + dp[i-2];
out += dp[i]/dp[i-1];
}
cout << fixed << setprecision(2) << out << endl;
return 0;
}