n个素数构成等差数列
n个素数构成等差数列
Time Limit: 1 Sec Memory Limit: 128 MB 64bit IO Format: %lld
Description
有n个素数(均小于m)可以构成一个等差数列。请编写程序根据给定的n和m,统计出满足条件的解有多少种。
例如,n=3,m=10;即在1到10的范围内有3个素数构成等差数列的情况有几组解,很显然3,5,7是一组解,也是唯一的一组。
提示:main函数已经给出(如下所示),提交时不必提交下面的代码,只需要提交你自己添加的代码。
#include<stdio.h>
int main()
{
int n,m,t;
while(scanf("%d%d",&m,&n)!=EOF)
{
t=f(m,n);
printf("%d\n",t);
}
return 0;
}
Input
包含多组测试数据,每组测试数据占一行,每行2个正整数,分别代表n和m,其中n大于等于3且小于等于10,m小于等于1000。
Output
每组测试数据输出占一行,每行输出一个整数,即满足条件的解的组数。
Sample Input
3 10
Sample Output
1
题目分析:
哦摩西罗伊,第一次看见不用提交完全代码的题。意思就是强制写函数,其实这种形式还好,但是这道题有点东西。。。
思路大概是:打表1000以内的质数,用 b [1000] 是 0 还是 1 来标记这个数是否为质数(起码我这么做感觉舒适)
然后对每个质数作为数列的第一个数, d (公差)从 1 开始变化来看,暴力枚举所有长度为 n 的等差数列,用 k 来记录长度是否到达,每个等差数列,如果该等差数列的每一项都是素数(用 b 数组值是否为 1 来判断),则 sum++ ,返回时返回 sum 。
1000以内的素数共168个, 打表的时候 a[0] 随便输入一个数就好。
值得一提的是,题中的 n 和 m 和代码中的是反着的。
以下是完整代码,抄作业是不对的哟~
#include<stdio.h>
int f(int m,int n)
{int a[200]={0,2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109
,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199,211,223,227,229,233,
239,241,251,257,263,269,271,277,281,283,293,307,311,313,317,331,337,347,349,353,359,367,3
73,379,383,389,397,401,409,419,421,431,433,439,443,449,457,461,463,467,479,487,491,499,50
3,509,521,523,541,547,557,563,569,571,577,587,593,599,601,607,613,617,619,631,641,643,647
,653,659,661,673,677,683,691,701,709,719,727,733,739,743,751,757,761,769,773,787,797,809,
811,821,823,827,829,839,853,857,859,863,877,881,883,887,907,911,919,929,937,941,947,953,9
67,971,977,983,991,997};int i,j,k,d,sum=0;int b[1001];for(i=1;i<=1000;i++)b[i]=0;for(i=1;i<=168;i++)b[a[i]]=1;d=1;for(i=1;i<=169-m;i++){d=1;while(d<=1000){k=0;j=a[i];while(b[j]==1 && j<=n){if(k<m)k++;if(k==m){sum++;break;}j += d;}d++;}}return sum;
}
int main()
{int n,m,t;while(scanf("%d%d",&m,&n)!=EOF){t=f(m,n);printf("%d\n",t);}return 0;
}
n个素数构成等差数列相关推荐
- c语言程序0到1000的素数,C语言实现之100-1000以内素数的等差数列
接上一篇,还是我同学给的题目,最后一个.一开始有点问题,现在改正了. *写的比较仓促,如果有更简便.执行效率更高的方法还请不吝赐教,当然我的如果有问题请大家给指出. 题目: 在小于10的素数中有3.5 ...
- 金蝉素数java代码分析_JAVA 水题
纯粹是让我来掌握熟练度的. 1.金蝉素数 某古寺的一块石碑上依稀刻有一些神秘的自然数. 专家研究发现:这些数是由1,3,5,7,9 这5 个奇数字排列组成的5 位素数,且同时去掉它的最高位与最低位数字 ...
- 【蓝桥杯】最长等差素数数列
[题目] 在小于10的素数中有3.5.7组成的等差数列,在小于30的素数中有11.17.23.29组成的等差数列. 试找出区间[100,1000]内的素数构成的最大等差数列(即等差数列包含的素数个数最 ...
- 任务4、等差数列求和,判断闰年,判断素数
文章目录 1.等差数列求和 (一)编程实现 (二)知识点讲解 1.for循环 (1)语法格式如下: (2)执行流程图如下: 2.自增自减运算 (1)自增运算 (2)自减运算 (三)拓展练习 任务1.打 ...
- 7,37,67,97,127,1577,37,67,97,127,157 这样完全由素数组成的等差数列,求等差素数的最小公差
public static void main(String[] args) { int sum = 0; // sum用来记录一次十次遍历有多少个素数 for ( ...
- 蓝桥杯真题 17省2-等差素数列 2,3,5,7,11,13,....是素数序列。 类似:7,37,67,97,127,157 这样完全由素数组成的等差数列,叫等差素数数列。 上边的数列公差为30
题目: 2,3,5,7,11,13,.... 是素数序列. 类似:7,37,67,97,127,1577,37,67,97,127,157 这样完全由素数组成的等差数列,叫等差素数数列. 上边的数列公 ...
- 第八届蓝桥杯C/C++省赛题:2,3,5,7,11,13,....是素数序列。 类似:7,37,67,97,127,157 这样完全由素数组成的等差数列,叫等差素数数列。 上边的数列公差为30……
题目: 标题:等差素数列 2,3,5,7,11,13,-是素数序列. 类似:7,37,67,97,127,157 这样完全由素数组成的等差数列,叫等差素数数列. 上边的数列公差为30,长度为6. 20 ...
- 蓝桥杯素数等差数列问题
ID:我是王小明 版权声明:本文为博主原创文章,未经博主允许不得转载. 蓝桥杯素数等差数列问题 问题描述:大体是长度为10的素数等差数列,求最小共差 #include <iostream> ...
- 等差素数咧 c语言,等差数列
1354. 等差数列2021-05-24 20:06:01 预处理出双平方数集合 枚举双平方数中的一对数作为等差数列的首项和第二项 剪枝: 计算出当前等差数列的末项,last=x+(n-1)*d比双平 ...
最新文章
- scanf可不可以输入浮点型_数据的输入和输出
- layui进度条bug
- 利用who,w,ps和top等指令查看linux下的进程执行情况.,UNIXLINUX操作系统实验指导书...
- 尚硅谷李老师笔记3DQL
- 红帽:将开源进行到底
- 步苹果iOS的后尘,谷歌Android12“翻车”,更新需谨慎?
- 【Python】Python中的lambda匿名函数
- redis数据类型set总结
- 阶段3 1.Mybatis_09.Mybatis的多表操作_5 完成user的一对多查询操作
- 在LaTeX中使用Python highlighting in LaTeX让python代码高亮
- 命令行查看文件夹大小
- 贝叶斯(五)贝叶斯决策
- pdf打印机有什么功能
- PySwitch - Python 环境快速切换
- 梦幻之旅:盘点一生必去的50…
- 示波器电流探头传播延迟的测量
- MySQL查询为啥慢了?
- 作为一名APP开发者,你更Care什么?
- 《新撰组异闻录——铁》启示录
- Mac上的“任务管理器”在哪里?