高分求 C语言设计·

来源:百度知道 编辑:UC知道 时间:2024/05/11 13:13:03
“1888-要发就发。”请将不超过1993的所有素数从小到大排成第一行,第二行上的每个数都等于它右肩上的素数与它正上方的素数之差。编程求出:第二行数中是否存在这样的若干个连续的整数,它们的和恰好是1888?假如存在的话,又有几种这样的情况? 要加解释···
若加上流程图 另有高分赠送·
不好意思呀 ·各位 ·要有必要的说明和注释的···

看看这个是不是你想要的:

#include <stdio.h>
#define S 1888 //总和的宏定义

int isprime(int n){ //判断一个整数是否是质数
int i;
for(i=2;i<n;i++)
if(n%i==0) return 0; //如果n能被一个比它小的整数整除它就不是质数
if(i==n) return 1; //如果n不能被任何比它小的数整除他就是质数
}

int nextprime(int n){ //给定一个整数,求出比它大的最小质数
int i=n+1;
while(1){
if(isprime(i)) return i; //如果这个值是质数,将其返回
else i++; //否则把它增加1
}
}

int is1888(int a[],int l,int s){ //检查在长度为l的数组a中是否有从s开始的一串连续的整数,它们的和为1888
int sum=0;
for(;s<l&∑<S;s++)
sum=sum+a[s];
if(sum==S) return s-1; //如果有这样一串连续整数输出最后一个数的下标
else return 0; //如果没有输出0
}

int main(){
int primes[1991]; //存放质数的数组
int differences[1990]; //存放质数之差的数组
int l=0,i,j,k,n=2;
printf("First line:\n");
for(i=0;i<1991;i++){ //第一行的内容
if(n>1993) break;
primes[i]=n;
print