求n以內最大的k個素數以及它們的和
阿新 • • 發佈:2021-10-17
本題要求計算並輸出不超過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
answer
#include <stdio.h> int sushu(int x){ int i; for(i = 2;i<x;i++){ if(x % i == 0) break; } if(i == x) return 1; else return 0; } int main(){ int n,k,sum = 0; int cnt = 0; scanf("%d %d",&n,&k); int limit = n; while(cnt < k){ if(n < 2) break; if(sushu(n)){ cnt++; if(cnt==1){ sum += n; printf("%d",n--); }else{ sum += n; printf("+%d",n--); } }else{ n--; } } printf("=%d",sum); return 0; }