0
已解决
武建豪
中级天翼
中级天翼
3108 回文数和素数经验值:800 时间限制:1000毫秒
合肥市第34届信息学竞赛
不许抄袭,一旦发现,直接清空经验!
题目描述 Description
卡卡西和小朋友们 把购买的图书文具一起邮寄给了山区贫困孩子,他们做了一件极其有意义的事情,心里乐开了花;哼着歌儿他 们做起了数字游戏,他们发现有些自然数例如131、1221等具有左右对称的特点,这样的数字被称为回文数;还有一些数如13、17等只能被1和其自身整除,这样的数被称为素数,作为编程爱好者,卡卡西想写出一个程序,迅速求出两个数m和n之间既是回文数又是素数的数字的个数。
输入描述 Input Description
输入数 据只有一行包含用空格分隔的两个正整m和 n。
输出描述 Output Description
输出一个整数, m和 n之间(包含 m和 n)既是回文数又是素数的数字的个数。
样例输入 Sample Input
100 200
样例输出 Sample Output
5
数据范围及提示 Data Size & Hint
100≤m≤n≤100000
这个咋写,代码或思路
武建豪在2021-05-02 12:34:56追加了内容
顶
武建豪在2021-05-02 20:18:36追加了内容
白金之星,快用你无敌的承太郎想想办法啊!
1
已采纳
胡钰妍
资深光能
资深光能
include<iostream>
#include<cmath>
using namespace std;
bool f(int y){
int s=0;
int m=y;
while(m){
s=s*10+m%10;
m/=10;
}
return s==y;
}
bool kx(int n){
if(n==1) return false;
for(int i=2;i<=sqrt(n);i++){
if(n%i==0) return false;
}
return true;
}
int main(){
int n,m,cnt=0;
cin>>n>>m;
for(int i=n;i<=m;i++){
if(f(i)&&kx(i)){
cnt++;
}
}
cout<<cnt;
return 0;
}
这个呢
以AC
0
胡钰妍
资深光能
资深光能
#include<iostream>
#include<cmath>
using namespace std;
bool f(int y){
int s=0;
int m=y;
while(m){
s=s*10+m%10;
m/=10;
}
return s==y;
}
bool kx(int n){
if(n==1) return false;
for(int i=2;i<=sqrt(n);i++){
if(n%i==0) return false;
}
return true;
}
int main(){
int n,m,cnt=0;
cin>>n>>m;
for(int i=n;i<=m;i++){
if(f(i)&&kx(i)){
cnt++;
}
}
cout<<cnt;
return 0;
}
PS:不要直接抄
望采纳
0
0