以下是一个C语言程序,可以将一个正整数变为回文数,并判断该回文数是否为质数:
#include <stdio.h>
#include <stdbool.h>
// 判断一个数是否为质数
bool isPrime(int num) {
if (num <= 1) {
return false;
}
for (int i = 2; i * i <= num; i++) {
if (num % i == 0) {
return false;
}
}
return true;
}
// 将一个正整数变为回文数
int toPalindrome(int num) {
int palindrome = 0;
while (num > 0) {
palindrome = palindrome * 10 + num % 10;
num /= 10;
}
return palindrome;
}
int main() {
int num;
printf("请输入一个正整数:");
scanf("%d", &num);
int palindrome = toPalindrome(num);
printf("%d变为回文数是%d\n", num, palindrome);
if (isPrime(palindrome)) {
printf("%d是质数\n", palindrome);
} else {
printf("%d不是质数\n", palindrome);
}
return 0;
}
该程序首先定义了一个isPrime函数,用于判断一个数是否为质数。接着,定义了一个toPalindrome函数,用于将一个正整数变为回文数。该函数使用取余和整除的方式来构造回文数。最后,在main函数中,通过调用这两个函数来实现将一个数变为回文数并判断该回文数是否为质数的功能。