素数回文数的个数

按照之前找素数对的逻辑,改为找11到n之间所有素数,然后判断此素数是否为回文数。计数器加加。
cpp
#include<bits/stdc++.h>
using namespace std;
int main(){
int n,num = 0;
cin >> n;
for(int i = 11;i <= n;i++){//遍历从11到n的所有数字
bool is1 = true;//判断是否为素数
if(i % 2 == 0) is1 = false;
else{
for(int j = 3;j*j <= i;j += 2){
if(i%j == 0){
is1 = false;
break;
}
}
}
if(is1){//如果是素数,检查反转后的数是否与原数相等
string s = to_string(i);//转化为字符串
reverse(s.begin(),s.end());//反转字符串
int I = stoi(s);//字符串转化为数字
if(i == I) num++;//如果是回文数,num++
}
}
cout << num << endl;
return 0;
}
求分数序列和

按要求求前n项和,可以按照公式求解,也可以逐步累加求解。
cpp
#include<bits/stdc++.h>
using namespace std;
int main(){
int n;
cin >> n;
double q = 2.0,p = 1.0;//分别表示分子和分母
double sum = 2.0;
for(int i=2;i<=n;i++){//跳过第一个
double t = q;
q += p;
p = t;
sum = sum + q/p;
}
if(n == 0) cout << 0.0000 << endl;
else cout << fixed << setprecision(4) << sum << endl;//保留四位小数
return 0;
}