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