大一新生的一个c语言题

img

你题目的解答代码如下:(如有帮助,望采纳!谢谢! 点击我这个回答右上方的【采纳】按钮)

#include <stdio.h>
int isprime( int n);
int main()
{
    int sum = 0;
    int n,k,m=0,i;
    printf("请输入n k: ");
    scanf("%d%d",&n,&k);
    for( i=n; i>=2; i-- ) {
        if (m==k)
            break;
        if(isprime(i)){
            printf("%d ", i);
            sum+=i;
            m++;
        }
    }
    printf("\n素数之和:%d", sum);
    return 0;
}
int isprime(int n)
{
    int i;
    if(n<=3) return n>1;
    for(i=2;i*i<=n;i++)
        if(n%i==0) return 0;
    return 1;
}

img

#include <stdio.h>
#include <math.h>
int isprime(int x);
int main()
{
    int n,k;
    scanf("%d %d",&n,&k);
    int sum=0;
    for(int j=n;j>=2;j--)
    {
        if(isprime(j))//如果是素数
        {
            sum+=j;//素数求和
            if(k==1)
            {
              printf("%d=",j);
                        break;
            }
            if(j==2)//判断到j=2,循环没有退出,2是最后一个数
            {
               printf("%d=",j);
            }else
            {
                printf("%d+",j);
            }
            k--;
        }    
    }
    printf("%d",sum);
    return 0;
}
int isprime(int x)//判断是否是素数
{
    int flag=1;
    for(int i=2;i<=sqrt(x);i++)
    {
        if(x%i==0&&x!=2)
        {
            flag=0;
            break;
        }
    }
    return flag;
}