質數進階
user_6817964
c_cpp
2 years ago
971 B
3
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...