問題描述 :
明明學習數學已經有一段時間了。一次老師在課上講了什麼叫質數。質數就是大於等於2且只能被1和其本身整除的整數。明明覺得這很簡單,以為這很容易掌握,於是就不多做練習。明的爸爸發現了這個問題,他想讓明明多做練習,把質數這個知識點掌握牢固。但是,他也知道只是求質數會很無聊,明明一定不願意多做。於是他想出了乙個遊戲,這個遊戲叫「找出質數」,就是給明明乙個數字串,要叫明明在這個數字串中找出乙個最大的子串,要求這個子串是乙個質數。 但是由於明明還太小,他的計算能力有限,因此明明的爸爸認為,找出長度大於4個字元的質數對明明來說太困難了。於是他降低了要求,只需找出小於10,000的最長的質數子串即可。 例如:有乙個數字串為17,最大的子串就應該是17,因為1不是質數,7雖然是質數,但是7的長度只有1,17也是質數,它的長度為2,因此最大的子串就是17。 明明覺得這個遊戲很有趣,就高興地做了起來,明明的爸爸出了很多個數字串,由於數字串太多,所以明明爸爸自己找出最長的子串也要花很多的時間,於是明明的爸爸想讓你幫他乙個忙,寫乙個程式,找出數字串中最長的質數子串。
明明爸爸的問題可以歸結為:輸入一串數字,找出其中最長的不超過4個字元的質數子串。若有多個答案,則找出其中數值最大的乙個。
輸入說明 :
你寫的程式要求從標準輸入裝置中讀入測試資料作為你所寫程式的輸入資料。標準輸入裝置中有多組測試資料,每組測試資料僅一行,每組測試資料為乙個數字串,數字串的長度不超過20。每組測試資料與其後一組測試資料之間沒有任何空行,第一組測試資料前面以及最後一組測試資料後面也都沒有任何空行。
輸出說明 :
對於每一組測試資料,你寫的程式要求計算出一組相應的運算結果,並將這一組運算結果作為你所寫程式的輸出資料依次寫入到標準輸出裝置中。每組運算結果為乙個整數,即最長的不超過4個字元的質數子串(測試資料保證這個子串存在);若有多個答案,則輸出其中數值最大的乙個。每組運算結果單獨形成一行資料,其行首和行尾都沒有任何空格,每組運算結果與其後一組運算結果之間沒有任何空行,第一組運算結果前面以及最後一組運算結果後面也都沒有任何空行。 注:通常,顯示屏為標準輸出裝置。
輸入範例 :
17121
1113
輸出範例 :172
113思想: 從4個長度開始遍歷,找到目標數便停止,注釋解釋的比較詳細。
#include #include#include
int iszs(int num) //
判定質數
}return
num;
}int
main()
for (j = 0; j < strlen(s); j++) //
從0開始遍歷整個陣列
else
}if (iszs(num)) //
判定是否是質數,同時更新max}}
}printf(
"%d\n
", max);
}}
高階74 找出質數
74 找出質數 問題描述 明明學習數學已經有一段時間了。一次老師在課上講了什麼叫質數。質數就是大於等於2且只能被1和其本身整除的整數。明明覺得這很簡單,以為這很容易掌握,於是就不多做練習。明的爸爸發現了這個問題,他想讓明明多做練習,把質數這個知識點掌握牢固。但是,他也知道只是求質數會很無聊,明明一定...
高階題74 找出質數
74 找出質數 問題描述 明明學習數學已經有一段時間了。一次老師在課上講了什麼叫質數。質數就是大於等於2且只能被1和其本身整除的整數。明明覺得這很簡單,以為這很容易掌握,於是就不多做練習。明的爸爸發現了這個問題,他想讓明明多做練習,把質數這個知識點掌握牢固。但是,他也知道只是求質數會很無聊,明明一定...
python 中從list表中找出質數
很抱歉之前上傳了乙個錯誤的方法,後來自己檢查發現是錯的。以下是我花了半個小時寫的,真的對不起之前的那些看了我的博文的同行,def zhishu list for i in list 遍歷列表 for j in range 2,int i 2 這裡是判斷這個數能不能給除了1和本身以外的數整除,剛開始的...