已知素数序列为 2、3、5、7、11、13、17、19、23、29……,即素数的第一个是 2,第二个 是 3,第三个是 5……那么,随便挑一个数,若是素数,能确定是第几个素数吗?如果不是 素数,则输出 0。 输入格式: 测试数据有多组,处理到文件尾。每组测试输入一正整数 N(1≤N≤1000000)。 输出格式: 对于每组测试,输出占一行,如果输入的正整数是素数,则输出其排位,否则输出 0。

输入样例:

2

6

4

5

13

991703

输出样例:

1

0

0

3

6

77901

#include <stdio.h>
#include <math.h>
int prime(int x)//求素数函数,素数返回 1,否则返回 0
{ int i; for(i=2;i<=sqrt(x);i++)if (x%i==0) return(0);return(1);
}
int main(void)
{ int n,i,s;
while((scanf("%d",&n))!=EOF)
{ s=0;
if(prime(n)==0) printf("%d\n",s);else
{ for (i=1;i<=n;i=i+2)if(prime(i)==1) s++;printf("%d\n",s);
}
}
return 0;
}

/*埃氏 Eratosthenes 筛选法(求一个范围中的所有素数) 我们用一个标记数组 f[maxi],其中 f[i]=0 为素数,否则为非素数,首先我们知道 1,和 0 都不是素数,所以 f[0]=1,f[1]=1 1.随后我们在未标记的数里面找最小的数,为 2,他不是任何数的的倍数,所以 2 是素数, 此时我们就把所有 2 的倍数都标记为 0;3,6,8,10……2*i 2.我们再从剩余未标记的数里面找最小的数,为 3,他也不是任何数的倍数,所以 3 是素数, 此时我们把所有 3 的倍数也都标记为 0;6,9,12,15,18……3*i 3.我们再从所有未标记的数里面找最小的数,为 5,他也不是任何数的素数,所以 5 是素数, 此时我们把所有 5 的倍数都标记为 0;10,15,20,25……5*i, …………以此类推 从 2 开始寻找素数,每次找到一个素数后就将它的倍数全部筛掉,不断循环,直至原队列 (数组)为空。 时间复杂度为 O(nlog logn)。*/

#include <stdio.h>
int main()
{ int n,len=0,i=0,k=0,a[1000]={0},b[1000]; // st[x]存储 x 是否被筛掉
while((scanf("%d",&n))!=EOF) { b[len++]=n;}
for (k=0;k<len;k++)
{if (b[k]==2) { a[k]=1;continue;}//偶数 2 是素数if (b[k]%2==0){ a[k]=0;continue;}//偶数肯定不是素数int st[1000000]={1,1,0};for(i=2;i<=b[k];i=i+1){if(!st[i])
{ a[k]++;for(int j=2 * i; j<=b[k]; j=j+i){st[j]=1;}
}}}
for (k=0;k<len-1;k++)
{ printf("%d\n",a[k]);
}printf("%d",a[k]);
return 0;
}

PTA 7-5 素数排位(10 分)相关推荐

  1. 7-5 素数判断 (10 分)

    7-5 素数判断 (10 分) 输入一个正整数,输出其是否为素数. 输入样例: 15 结尾无空行 输出样例: NO 结尾无空行 输入样例: 53 结尾无空行 输出样例: YES 结尾无空行

  2. PTA: 6-8 剩余不足 (10分)(c语言)

    PTA: 6-8 剩余不足 (10分)(c语言) 若每人发 a 颗,则多 b 颗: 若每人发 c 颗,则差 d 颗. 请问:p.q 各为多少? 函数原型 // 剩余不足问题 int SurplusSh ...

  3. L1-028 判断素数 (10 分)

    L1-028 判断素数 (10 分) 本题的目标很简单,就是判断一个给定的正整数是否素数. 输入格式: 输入在第一行给出一个正整数N(≤ 10),随后N行,每行给出一个小于2​31​​的需要判断的正整 ...

  4. PTA——6-1 简单输出整数 (10 分)

    6-1 简单输出整数 (10 分) 本题要求实现一个函数,对给定的正整数N,打印从1到N的全部正整数. 函数接口定义: void PrintN ( int N ); 其中N是用户传入的参数.该函数必须 ...

  5. PTA 7-4 十进制转二进制 (10 分)

    7-4 十进制转二进制 (10 分) 编写一个函数,其参数是一个整数N,返回值也是一个整数(假设是R),规则是整数R写出来(输出出来)是N的二进制形式.例如:参数是15,返回值应是1111.主函数中输 ...

  6. pta 习题5-1 符号函数 (10分)

    浙大版<C语言程序设计(第3版)>题目集 习题5-1 符号函数 (10分) 本题要求实现符号函数sign(x). 函数接口定义: int sign( int x ); 其中x是用户传入的整 ...

  7. PTA 6-9 递归计算P函数 (10分)

    本题要求实现下列函数P(n,x)的计算,其函数定义如下: 函数接口定义: double P( int n, double x ); 其中n是用户传入的非负整数,x是双精度浮点数.函数P返回P(n,x) ...

  8. (浙江大学数据结构)PTA Complete Binary Search Tree (10 分)

    题目: A Binary Search Tree (BST) is recursively defined as a binary tree which has the following prope ...

  9. PTA天梯赛 L1-067 洛希极限 (10 分)

    科幻电影<流浪地球>中一个重要的情节是地球距离木星太近时,大气开始被木星吸走,而随着不断接近地木"刚体洛希极限",地球面临被彻底撕碎的危险.但实际上,这个计算是错误的. ...

最新文章

  1. Windows核心编程 第27章 硬件输入模型和局部输入状态
  2. 如何使用visual studio 2017创建C语言项目
  3. HttpClient的连接池||HttpClient的请求参数
  4. 网页打印javascript:window.print()
  5. 效率提升看得见 神策 A/B 测试可视化试验能力正式上线
  6. 计算机网络恶搞图片,网络恶搞图片遭-搜狐新闻
  7. 5.8 正则化和数据标准化
  8. 李善友:为什么外企人不敢创业
  9. flask ajax 文件上传,python flask使用ajax请求上载文件。文件为空
  10. 响应式web之@media screen
  11. Jenkins的系统设置
  12. java messagelistener_MessageListenerAdapter
  13. 基于DHT网络的BT磁力链蜘蛛源码
  14. 深富策略鸿蒙概念股继续领跌
  15. MeterSphere关联TAPD
  16. 解决Tabby终端使用zsh主题字体无法识别问题
  17. 针对Object和Array深拷贝处理
  18. 实战技术:提升网站用户体验—WebP 图片的高效使用
  19. python 离散化_数据离散化与Python实现
  20. ServerSQL数据库查锁、解锁

热门文章

  1. 仪征警方“猎狐行动”取得重大战果!一名外逃越南嫌疑人落网
  2. 交错TCM图腾柱无桥PFC仿真
  3. Evernote还是不错的
  4. 黑龙江省人力资源和社会保障网上服务大厅 - https://www.renshenet.org.cn/sionline/loginControler
  5. IMU校正以及姿态融合
  6. Glide在RecyclerView自适应图片尺寸
  7. ORB-SLAM3:一个高精度视觉、视觉惯性和多地图SLAM开源库
  8. VScode更改语言为中文简体的两种方式
  9. html 图片部分区域超链接,css中关于超链接的部分学习心得_html/css_WEB-ITnose
  10. css实现纹理条纹,波点背景效果