質數進階
user_6817964
c_cpp
3 years ago
971 B
5
Indexable
#include <stdbool.h> // bool
#include <stdio.h> // printf
int main()
{
int m;
scanf_s("%d", &m);
int n[100], n_old[100], n_new[100];
for (int k = 0; k < m; k++) {
scanf_s("%d", &n[k]);
}
for (int k = 0; k < m; k++) {
n_old[k] = n[k];
/*看是不是質數*/
bool prime = true;
for (int i = 2; i * i < n[k]; i++) {
if (n[k] % i == 0) {
prime = false; break;
}
}
if (prime) {
/*反轉*/
int x = 1;
int temp;
n_new[k] = 0;
while (n[k] != 0) {
temp = n[k] % 10;
n_new[k] = (n_new[k] * 10) + temp;
n[k] /= 10;
}
/*看反轉後是不是質數*/
prime = true;
for (int i = 2; i * i < n_new[k]; i++) {
if (n_new[k] % i == 0) {
prime = false; break;
}
}
if (prime && n_old[k] != n_new[k])
printf("%d is emirp.\n", n_old[k]);
else
printf("%d is prime.\n", n_old[k]);
}
else
printf("%d is not prime.\n", n_old[k]);
}
}
Editor is loading...