c语言编程集锦5:连续的素数之和改进版c语言编程集锦5:连续的素数之和改进版
/*某些正整数能够表示成一个或多个连续的素数之和,被给定的整数有多少个这样的表示形
式呢? 例如,整数53
有两个这样的表示形式:5 + 7 + 11 + 13 + 17 和 53.整数41有三个:2+3+5+7+11+13, 11+13+17,
和 41.
整数3仅有一个:3.而整数20一个也没有.注意这些加数必须是连续的素数. 所以7 + 13 和
3 + 5 + 5 + 7
都不是正确的表示整数20的形式, 你的任务是编一个程序输出给定的整数用此类形式表达
...
c语言编程集锦5:连续的素数之和改进版
/*某些正整数能够表示成一个或多个连续的素数之和,被给定的整数有多少个这样的表示形
式呢? 例如,整数53
有两个这样的表示形式:5 + 7 + 11 + 13 + 17 和 53.整数41有三个:2+3+5+7+11+13, 11+13+17,
和 41.
整数3仅有一个:3.而整数20一个也没有.注意这些加数必须是连续的素数. 所以7 + 13 和
3 + 5 + 5 + 7
都不是正确的表示整数20的形式, 你的任务是编一个程序输出给定的整数用此类形式表达
的个数.
Input
输入一系列正整数,每行输入一个.输入的数要求在2-10 000(含10 000)间,最后输入一个0
表示结束.
Output
输出是一列与所输入整数(最后一个0除外)对应的数,输出的数表示给定的整数用一个或多
个连续的素数之和
表达的个数.无关的数据不要输出.
Sample Input
2
3
17
41
20
666
12
53
0
Sample Output
1
1
2
3
0
0
1
2
*/
#include
#include
#define N 10000
int Prime(int *prime); int count(int n, int *p, int len);
int main(void)
{
int i, m, n[N]={0}, len, sum=0, num[N]={0}, prime[N]={0}, *p=prime;
len = Prime(p);//存储1-10000的所有素数
do{
scanf("%d",&m);
if(m<0 || m>10000)
continue;
if(m>0 && m<=10000)
n[sum++] = m; //把输入的数据存入数组n[]
} while(m != 0);
for(i=0; i
本文档为【c语言编程集锦5:连续的素数之和改进版】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。