码迷,mamicode.com
首页 > 其他好文 > 详细

CNUOJ 0909 HDNoip201502统计质数

时间:2015-09-20 00:28:19      阅读:164      评论:0      收藏:0      [点我收藏+]

标签:

HDNoip201502统计质数

难度级别:B; 运行时间限制:1000ms; 运行空间限制:51200KB; 代码长度限制:2000000B
试题描述

Jam看着趣味数学书上从中心一圈圈向外盘绕的数字方阵(见示意图),忽然发现前4个质数恰好是前4个拐点,他突发奇想地猜测:“所有拐点上的数会不会都是质数?”或者“位于拐弯位置(拐点)的数中包含质数的比例很高?”你能否编程帮他解决“前n个拐点中有多少个是质数?”的问题?

      示意图

7  6  5      ↓←←
8  1  4      ↓↓↑
9  2  3      ↓→↑
10……        →……

输入
只有一个正整数n。
输出
只有质数总数这一个正整数。
输入示例
6
输出示例
5
其他说明
数据范围:对于100%的数据,n<10000。

很简单的一道小题。昨天看到有同学把图构造出来,其实根本没必要,又费时间又费空间,找到规律就可以了。代码如下:

#include<iostream>
#include<cstdio>
using namespace std;
int n,s,t,ans;
bool is_prime(int i)
{
    for(int j=2;j*j<=i;j++) if(i%j==0) return 0;
    return 1;
}
int main()
{
    scanf("%d",&n);
    for(int i=2;s<n;i+=t)
    {
        s++;
        if(is_prime(i)) ans++;
        if(s%2==0||s==1) t++;
    }
    printf("%d",ans);
    //system("pause");
}

 

CNUOJ 0909 HDNoip201502统计质数

标签:

原文地址:http://www.cnblogs.com/xiaoshenWXY/p/4822581.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!