c语言之求n以内最大的k个素数以及它们的和

news/2024/10/18 18:24:40/

描述

编写程序,计算并输出不超过n的最大的k个素数以及它们的和。

输入

在一行中给出n(10≤n≤10000)和k(1≤k≤10)的值。

输出

在一行中按下列格式输出:

素数1+素数2+…+素数k=总和值

其中素数按递减顺序输出。若n以内不够k个素数,则按实际个数输出。

输入样例 1 

1000 10

输出样例 1

997+991+983+977+971+967+953+947+941+937=9664

输入样例 2 

12 6

输出样例 2

11+7+5+3+2=28

#include <stdio.h>

int f(int a)
{
    int i;
    if(a==0||a==1)
        return 0;
    else {
        for(i=2;i<a;i++)
      if(a%i==0)
        break;
    if(i>=a)
    return 1;
    else return 0;
    }

}
int main(int argc,char const *argv[])
{
    int n,a[10000]={0},b[10],k,s=0,i,j=0,z=0;
    scanf("%d %d",&n,&k);
    for(i=0;i<=n;i++)
    {
        if(f(i))
        {     a[j]=i;
              j++;

        }
    }
    if(j>=k)
    {
         for(i=j-1;i>j-1-k;i--)
    {
        s=s+a[i];

        printf("%d",a[i]);
        if(i!=j-k)
            printf("+");
    }
    }
    else
    {
        for(i=j-1;i>=0;i--)
      {
          s=s+a[i];
        printf("%d",a[i]);
        if(i!=0)
            printf("+");
      }
    }

    printf("=%d",s);
}
 


http://www.ppmy.cn/news/714116.html

相关文章

查找第K小元素(C语言版)

今天在看《算法&#xff1a;C语言实现》时&#xff0c;在快速排序那一章最后一节讲述了利用快速排序的思想&#xff0c;快速排序每次划分后在枢轴的左边的元素都比枢轴小(或相等)&#xff0c;在枢轴右边的数都比枢轴大(或相等)&#xff0c;而划分后枢轴本身就放在了(有序时)它自…

【已解决】C语言从n个不同的元素中,每次取出k个不同的元素

本博文源于c语言基础&#xff0c;旨在通过对思路的解释&#xff0c;编写出组合数的代码&#xff0c;博文分为以下模块1、问题再现&#xff0c;2、代码测试效果3、核心解题思路4、完整源码 重点看解题思路 1、问题再现 从n个不同的元素中&#xff0c;每次取出k个不同的元素&am…

C语言学习之求∑k(k=100)+∑K*k(k=50)+∑1/k(k=10)

求∑k(k100)∑K*k(k50)∑1/k(k10) #include <stdio.h> #include <math.h> void main(){double as0,bs0,cs0;for(int i1;i<100;i){asi;}printf("1...100%d\n",as);for(int j1;j<50;j){bspow(j,2);}printf("1*1...50*50%d\n",bs);for(int …

C语言 计算∑(k=1—100)k+∑(k=1—50)k²+∑(k=1—10)1/k的值

#include <stdio.h> int main(){int n1100,n250,n310;double k,s10,s20,s30;for(k1;k<n1;k){ //计算1—100的和s1s1k;}for(k1;k<n2;k){ //计算1—50的和s2s2k*k;}for(k1;k<n3;k){ //计算1-10的各倒数和s3s31/k;}printf("sum%6f",s1s2s3);return 0; }

c语言三种方法求n的k次方

// 方法一&#xff1a;递归 #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> int Power(int n,int k) //题目中有两个变量&#xff0c;在设计函数时需要两个形参 {if (k 0){return 1;}else if(k1) {return n;}else{return n*Power(…

K-Means算法的C语言实现

一、聚类和聚类算法 聚类&#xff0c;就是将数据对象划分成若干个类&#xff0c;在同一个类中的对象具有较高的相似度&#xff0c;而不同的类相似度较小。聚类算法将数据集合进行划分&#xff0c;分成彼此相互联系的若干类&#xff0c;以此实现对数据的深入分析和数据价值挖掘…

求单项链表的倒数第k个节点(c语言)

求单项链表的倒数第k个节点&#xff08;只遍历一次&#xff09; 单向链表求倒数第k个节点我们可以先遍历一遍找出链表的长度&#xff0c;再设置一个指针走&#xff08;n-k&#xff09;步可以找到倒数第k个节点。 但是&#xff0c;这需要遍历两次&#xff0c;如果只允许遍历一次…

记一种神奇的C语言语法:KR C

文章目录 记一种神奇的C语言语法&#xff1a;K&R C ——古代C语言函数定义K&R C : identifier-list注意 ANSI C : declarator 记一种神奇的C语言语法&#xff1a;K&R C ——古代C语言 信息来源&#xff1a; ANSI和K&R两种函数定义风格-wangweiming-ChinaUnix…