#include<stdio.h>
#define MAX 100
//素数
int isPrime(int n){
if(n <= 1) return 0;
int i;
// for(i=2;i<n;i++){ //正确
for(i=2;i*i<=n;i++){ //正确,推荐
//for(i=2;i*i<n;i++){ //错误
if(n%i==0) return 0;
}
return 1;
}
//回文数
int isPalindrome(int n){
// 反转
int reverse=0;
int t=n;
while(t!=0){
//低位转换到高位
reverse = reverse*10;
reverse = reverse+(t%10);
t = t/10;
}
if(reverse != n) return 0;
else return 1;
}
// 快排
void qs(int a[],int l,int r){
if(l < r){
int i,j,k;
i = l;
j = r;
k = a[i]; //默认最左边的为K值
while(i < j){
//从右往左找一个比K小的
while(i < j && a[j] > k) j--;
if(i < j) a[i++] = a[j];
//从左往右找一个比K大的
while(i < j && a[i] < k) i++;
if(i < j) a[j--] = a[i];
}
a[i] = k;
qs(a,l,i-1);
qs(a,i+1,r);
}
}
//冒泡
void bubbleSort(int a[], int length){
int t;
//i是已排序的数的个数
for (int i = 0; i < length; i++) {
//j < length - i -1 从小到大依次排序, -i是因为已排序不需重复排序,-1是因为有j+1,防止越界
for (int j = 0; j < length - i -1; j++) {
//大的数依次向后排
if (a[j] > a[j+1]){
t = a[j];
a[j] = a[j+1];
a[j+1] = t;
}
}
}
}
int main(){
int i;
for(i=-1000;i<=1000;i++){
if(isPrime(i) == 1 && isPalindrome(i) == 1) printf("%d为素数和回文数\n", i);
}
return 0;
}
C语言
最新推荐文章于 2023-08-16 19:20:05 发布