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语句
展开
 我来答
百度网友fc027fc
推荐于2016-04-14 · TA获得超过1.1万个赞
知道大有可为答主
回答量:3160
采纳率:83%
帮助的人:740万
展开全部
#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;
}

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式