iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 27
1
自我挑戰組

一日一CPE系列 第 27

[Day27]10533: Digit Primes

  • 分享至 

  • xImage
  •  

考題日期:2015/12/22
題號:10533
星等:3
語言:C++


題目:
https://ithelp.ithome.com.tw/upload/images/20191013/20120937FGBh9YcKZ6.png


題意:
digit prime是一個質數,且其中的每個數的和也是質數。例如:41 是一個digit prime,因為 4+1=5,而 5 也是一個質數。17 就不是一個digit prime,因為 1+7=8,而 8 並不是質數。找出一定的範圍內有多少個 digit prime。


程式:

#include <iostream>
#include <math.h>
#include <stdio.h>
#define Size 1000000
using namespace std;
int prime[1000000] = {0};
int main()
{
    prime[0] = prime[1] =  1;
    for(int i = 2 ; i < sqrt(Size) ; i++)
    {
        if(!prime[i])
            for(int j = i + i ; j < Size ; j += i)
                prime[j] = 1;
    }
    int test,a,b;
    scanf("%d", &test);
    while(test--)
    {
        int digitprime = 0;
        scanf("%d%d", &a,&b);
        for(int i = a ; i <= b ; i++)
        {
            if(!prime[i])
            {
                int all = 0,k = i;
                while(k>0)
                {
                    all += k % 10;
                    k /= 10;
                }
                if(!prime[all])
                    digitprime++;
            }
        }
        printf("%d\n", digitprime);
    }
    return 0;
}


測資:
https://ithelp.ithome.com.tw/upload/images/20191013/20120937BS8QvnXZWd.png


上一篇
[Day26]1644: Prime Gap
下一篇
[Day28]10038: Jolly Jumpers
系列文
一日一CPE30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言