题目描述
求一定范围内[m,n]特定素数的和(特定素数指含有数字3的素数,比如3,13,31等)
输入
第一行输入一个数t代表测试数据组数,随后的t行每行包含两个数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;
}