对称素数
程序员文章站
2022-07-12 23:31:33
...
-
1、对称三位素数
判断三位数是否为对称素数,若是,输出Yes,否则输出No
一、方法一
#include<iostream>
using namespace std;
//对称三位素数
void main(){
int n;
cin >> n;
cout << "please input"<<n<<"positive inegers"<<endl;
int a[20];
for (int i = 0; i < n; i++) {
cin >> a[i];
}
for (int j = 0; j < n; j++) {
//判断a[j]是否为三位对称素数
for (int k = 2; k < a[j]; k++) {
if (a[j] % k == 0 || a[j] < 100 || a[j]>1000||a[j]%10!=a[j]/100%10) {
cout << "NO" << endl;
break;
}
if(j+1==k)
cout << "YES" << endl;
}
}
}
二、方法二
#include<iostream>
using namespace std;
//对称三位素数
bool isPrime(int n) {
for (int i = 2; i < n; i++) {
if (n % i == 0)
return false;
}
return true;
}
void main(){
int n;
while (cin >> n) {
cout << (n > 100 && n < 1000 && n / 100 % 10 == n % 10 && isPrime(n) ? "Yes\n" : "No\n");
}
}
-
判断五位以内的对称素数
判断5位以内的对称素数,若是则输出Yes,否则输出No
#include<iostream>
using namespace std;
//判断5位以内的对称素数,若是则输出Yes,否则输出No
int isPrime(int n) {
int k = (int)sqrt(n);
if (n == 1) return 0;
for (int i = 2; i <= k; i++) {
if (n % i == 0)
return 0;
}
return 1;
}
void main(){
int n;
while (cin >> n) {
if (n / 10 == 0 && isPrime(n==1)) {//一位素数均为对称素数
cout << "Yes" << endl;
}
else if (n / 100 == 0 && (n % 10 == n / 10 % 10) && isPrime(n)==1) {
cout << "Yes" << endl;
}
else if (n / 1000 == 0 && (n % 10 == n / 100 % 10) && isPrime(n)==1) {
cout << "Yes" << endl;
}
else if (n / 10000 == 0 && (n % 10 == n / 1000 % 10 && n / 10 % 10 == n / 100 % 10) && isPrime(n)==1) {
cout << "Yes" << endl;
}
else {
cout << "No" << endl;
}
}
}
上一篇: SpringCloud学习笔记4
下一篇: opencv-轮廓检测