c语言编程,这题我根本没头绪
--输入一个[10,500]上的正整数并保存到变量n中--输出[1,n]上各位数字均为素数的整数的和--如果n不在[10,500]上取值,则输出-1--自定义一个函数f(...
--输入一个[10,500]上的正整数并保存到变量n中
--输出[1,n]上各位数字均为素数的整数的和
--如果n不在[10,500]上取值,则输出-1
--自定义一个函数f(k),判断k是否为素数
--代码中必须使用switch语句和for语句 展开
--输出[1,n]上各位数字均为素数的整数的和
--如果n不在[10,500]上取值,则输出-1
--自定义一个函数f(k),判断k是否为素数
--代码中必须使用switch语句和for语句 展开
1个回答
展开全部
#include <stdio.h>
#include <stdlib.h>
int f(int k)
{
if(k<=1) return 0;
if(k%2==0) return k==2;
int i;
for(i=3;i*i<=k;i+=2)
{
if(k%i==0) return 0;
}
return 1;
}
int main()
{
int n;
while(scanf("%d",&n)!=EOF)
{
if(n<1 || n>500) printf("-1\n");
else
{
int sum=0;
int i;
for(i=1;i<=n;i++)
{
switch(i<10)
{
case 1: if(f(i)==1) sum += i;break;
case 0:switch(i<100){
case 1: if(f(i/10)==1 && f(i%10)==1) sum += i;break;
case 0: if(f(i/100)==1 && f(i%100/10)==1 && f(i%10)==1) sum+=i;break;
};break;
}
}
printf("%d\n",sum);
}
printf("\n");
}
return 0;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询