1. 程式人生 > >素數迴文數的個數

素數迴文數的個數

總時間限制: 1000ms 記憶體限制: 65536kB
描述

求11到n之間(包括n),既是素數又是迴文數的整數有多少個。

輸入
一個大於11小於1000的整數n。
輸出
11到n之間的素數迴文數個數。
樣例輸入
23
樣例輸出
1
提示
迴文數指左右對稱的數,如:292,333。
來源
06計算概論課
這題考察的是無數和迴文數的的綜合,我自定義了兩個判斷函式,在主函式裡面呼叫,比較簡單明瞭,若還有更好的方法歡迎提意見。
#include<stdio.h>
int sp(int n)//素數判斷函式
{
    int j;
     for(j=2;j<n;j++)
        {
            if(n%j==0)
                break;
        }
        if(n==j)
            return 1;
        else
            return 0;
}
int hp(int n)//迴文數判斷函式
{
    int w=0,j,r=0,a[5]={0};
    while(n)
           {
              a[w++]=n%10;
              n/=10;
            }
            for(j=0;j<w;j++)
            {
                if(a[j]==a[w-j-1])
                    r=1;
                else
                {
                    r=0;
                    break;
                }
           }
    if(r==1)
        return 1;
    else
        return 0;
}
int main()
{
    int n,i,s=0,h=0,l=0;
    scanf("%d",&n);
    for(i=11;i<=n;i++)
    {
          h=sp(i);//呼叫素數判斷函式
         l=hp(i);//呼叫迴文數判斷函式
        if(h==1&&l==1)
            s++;
    }
    printf("%d",s);
    return 0;
}

相關推薦

JavaStudy——0057:素數個數

總時間限制: 1000ms 記憶體限制: 65536kB 描述 求11到n之間(包括n),既是素數又是迴文數的整數有多少個。 輸入 一個大於11小於1000的整數n。 輸出 11到n之間的素數迴文數個數。 樣例輸入 23 樣例輸出 1 提示 迴文數指左右對稱

素數個數

總時間限制: 1000ms 記憶體限制: 65536kB 描述 求11到n之間(包括n),既是素數又是迴文數的整數有多少個。 輸入一個大於11小於1000的整數n。輸出11到n之間的素數迴文數個數。樣

05:素數個數

描述   求11到n之間(包括n),既是素數又是迴文數的整數有多少個。 輸入   一個大於11小於1000的整數n。輸出11到n之間的素數迴文數個數。 樣例輸入 23 樣例輸出 1   提示迴文數指左右對稱的數,如:292,333。 來源   06計算概論課 程式碼 1

7655:個數

描述 不超過n位的正整數中,有多少個迴文數? 輸入 一個正整數n,n <= 10。 輸出 一個整數,即迴文數個數。 樣例輸入 5 樣例輸出 1098 來源 《奧數典型題舉一反三(小學五年級)》 (ISBN 978-7-5445-2882-5) 第一章

演算法:給定一個整數陣列和一個目標值,找出陣列中和為目標值的兩個數、判斷一個整數是否是

<!-- 給定一個整數陣列和一個目標值,找出陣列中和為目標值的兩個數。 你可以假設每個輸入只對應一種答案,且同樣的元素不能被重複利用。 示例: 給定 nums = [2, 7, 11, 15], target = 9 因為 nums[0] + nums[1] = 2 + 7 = 9

輸入一個整數,判斷其是否是是指這個數顛倒後,和原相同那個。

1 public static void main(String[] args) { 2 System.out.println("請輸入一個整數:"); 3 Scanner input = new Scanner(System.in); 4 int

c++求解一個五位數裡個數

1.問題的重述        編寫一個通用的函式,該函式的功能是判斷一個五位數是否是一個迴文數。所謂迴文數就是一個數字從左邊看和從右邊看是一樣的,例如:35653,這就是一個迴文數,而12345則不是迴文數,即最高位的數字等於最低位的數字,次高位的數字等於次低位的數字。所以

前端演算法:給定一個整數陣列和一個目標值,找出陣列中和為目標值的兩個數、判斷一個整數是否是

<!-- 給定一個整數陣列和一個目標值,找出陣列中和為目標值的兩個數。 你可以假設每個輸入只對應一種答案,且同樣的元素不能被重複利用。 示例: 給定 nums = [2, 7, 11, 15], target = 9 因為 nums[0] + nums[

【C語言】判斷一個數是不是

 所謂迴文數,就是說一個數字從左邊讀和從右邊讀的結果是一模一樣的。 首先,我們來判斷一下一個數是否為迴文數: #define _CRT_SECURE_NO_WARNINGS 1 #include&

判斷一個數是不是(Java StringBuffer)

這個題目如果是用Java寫,會聯想到StringBuffer類中有一個倒置字串的函式:reverse(),值得注意的是,這個函式返回一個引用,也就是說,進行倒置之後原來的StringBuffer物件也就變了,所以一定要記得在寫的時候注意。

提高篇第一講專案6.4——編制函式輸出1000以內的所有素數素數,可逆素數

問題描述 (4)編制main函式,呼叫上面定義的3個函式,完成 輸出1000以內的所有素數。輸出1000以內的所有迴文數。輸出1000以內的所有迴文素數。若一個素數的反序數仍為素數,則稱它為可逆素數。

C++ 如何判斷一個數

如果一個數從左邊讀和從右邊讀都是同一個數, 就稱為迴文數 解答: 思想最簡單的方法就是模擬,把各個數位取出來,然後比較。當然這種方法比較麻煩。 我們這次要用的方法如下:既然是迴文數,那我們把各個數位上的數 正著 加起來跟 逆著 加起來的 和 是一樣的。運用這條性質我們就可以很

C語言經典演算法100例-030-判斷一個數是否為

所謂迴文數,即是正序與逆序相等的一個數,如121,12321,10501等。寫程式判斷輸入的數是否為迴文數。 1.分析:表面上看,我們似乎要這麼做,把各個位分離,然後把第一個數跟最後一個數比較,第二個跟倒數第二個....等等。注意,這樣做太複雜了,迴文數的條件是正序等於逆序

用Python判斷一個數是否為(或者回字串)

所謂迴文數。就是正著讀和反著讀,都是一樣的。 例如: 數字:121、1331、22、都是迴文數。 1234 不是迴文數。 自然數中最小的迴文數是0,再就是1,2,3,4,5,6,7,8,9,

從控制檯輸入一個數,判斷這個數是否為

分析:要判斷一個數是否是迴文數,首先要知道什麼是迴文數。 1.迴文數必須是五位數。 2.滿足條件:萬位數=各位數;千位數=十位數; 3.獲取各個位數的方法 int ww=a/10000;//萬位 //int qw=a/1000%10;//千位 //int bw=a/100%

輸出1000以內的所有素數;輸出1000以內的所有;輸出1000以內的所有素數;輸出1000以內的所有可逆素數

/* * Copyright (c) 2013, 煙臺大學計算機學院 * All rights reserved. * 作 者:王穎 * 完成日期:2013 年 11 月 11 日 * 版 本 號:v1.0 * * 輸入描述: 無 * 問題描述:輸出1000以內的所

python 學習 、 田字格 、猜遊戲、統計不同字元個數DAY15

迴文數 getnum = input("請輸入一個自然數:") if getnum == getnum[::-1]:     print("{0}是迴文數".format(getnum)) else:     print("該數不是迴文數") 田字格1 for i i

要求迴圈輸入一個數,判斷是否為

import java.util.Scanner; public class HuiWenShu { public static void main(String[] args) { Scanner input = new Scanner(System.in);

判斷一個數的最簡單實現

程式碼的核心就在於將一個數子一步步從個位數拆分開來,然後再將拆分得到的數字從高位向低位加起來。 如果得到的數字與原來的數字相等,則判斷為迴文數 #include <stdio.h> in