網(wǎng)站開發(fā)技術的現(xiàn)狀及發(fā)展趨勢百度快照怎么刪除
任意的整數(shù),當從左向右讀與從右向左讀是相同的,且為素數(shù)時,稱為回文素數(shù)。求 1000 以內(nèi)的所有回文素數(shù)。
算法思想
實例的重點是判斷一個數(shù)是否是回文素數(shù)。要輸出 1000 以內(nèi)的所有回文素數(shù),首先應判斷這個數(shù)是否是素數(shù);如果是,再進一步判斷這個數(shù)是兩位數(shù)還是三位數(shù),若是兩位數(shù),則需判斷個位數(shù)和十位數(shù)是否相同;若是三位數(shù),則需判斷個位數(shù)和百位數(shù)是否相同。若相同,則判斷為回文素數(shù),否則繼續(xù)下次判斷。
① 定義一個函數(shù) sushu,其作用是判斷一個數(shù)是否是素數(shù)。
② 對判斷為素數(shù)的數(shù),再判斷其是否是兩位數(shù)。
? ? 若是兩位數(shù),再判斷其個位數(shù)和十位數(shù)是否相同,若相同則打印輸出;若不相同,則執(zhí)行④;若不是兩位數(shù),則執(zhí)行③。
③ 若是三位數(shù),則判斷其個位數(shù)和百位數(shù)是否相同。若相同,則打印輸出;若不相同,則執(zhí)行 ④。
④ 循環(huán)控制變量 i 自增 1。
⑤ 直到 i 自增至 1000 結束。
#include<stdio.h>
int sushu(int i) {int j;if (i <= 1) {return 0;}if (i == 2) {return 1;}for (j=2; j < i; j++) {if (i % j == 0) {return 0;}else if (i != j + 1) {continue;}else {return 1;}}
}
這是一個判斷是不是素數(shù)的函數(shù) 判斷完這個之后就要判斷是不是回文數(shù)了
int main() {int sushu(int i);int i = 0;for (i = 10; i < 1000; i++){if (sushu(i) == 1){if (i / 100 == 0)//兩位數(shù){if (i / 10 == i % 10)//個位和十位相比較{printf("%5d\t", i);}}else {if (i / 100 == i % 10) {printf("%d\t", i);}}}}}
完整代碼:
#include<stdio.h>
int sushu(int i) {int j;if (i <= 1) {return 0;}if (i == 2) {return 1;}for (j=2; j < i; j++) {if (i % j == 0) {return 0;}else if (i != j + 1) {continue;}else {return 1;}}
}
int main() {int sushu(int i);int i = 0;for (i = 10; i < 1000; i++){if (sushu(i) == 1){if (i / 100 == 0)//兩位數(shù){if (i / 10 == i % 10)//個位和十位相比較{printf("%5d\t", i);}}else {if (i / 100 == i % 10) {printf("%d\t", i);}}}}}