質問の説明
一定範囲内の特定の素数[m,n]の和を求めます(特定の素数とは、3、13、31など、数字の3を含む素数を指します)。
入力
最初の行には、テスト データ グループの数を表す数値 t を入力します。後続の各 t 行には 2 つの数値 m が含まれ、n は特定の範囲を表します (0<m、n<=100、m は等しくありません) n)
出力
出力には t 行があり、各行には数値が含まれ、対応する特定の素数の合計が出力されます。
サンプル入力
2 14
サンプル出力
3
16
C++コード
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define MaxSize 1000
bool judge(int n)
{
int t=n;
while (t != 0)
{
if (t % 10 == 3)
return true;
t = t / 10;
}
return false;
}
bool is_prime(int n)
{
int i;
if (n == 1 || n == 2)
return true;
for (i = 2; i < n; i++)
{
if (n%i == 0)
return false;
}
return true;
}
int add(int m, int n)
{
int i,sum=0;
for (i = m; i <= n; i++)
{
if (is_prime(i) == true && judge(i) == true)
sum += i;
}
return sum;
}
int main()
{
int t, m, n,sum=0;
scanf("%d", &t);
while (t--)
{
scanf("%d %d", &m, &n);
sum=add(m, n);
printf("%d\n", sum);
}
return 0;
}