日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Primes on Interval

發(fā)布時間:2023/12/4 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Primes on Interval 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

AC代碼:

#include?<cstdio>

#include?<cstring>

#include?<iostream>

#include?<algorithm>

using?namespace?std;

const?int?maxn?=?1001000;

#define??inf?(1<<29)

//上面的位運算還真心沒有看懂

//?p[i]?is?i-th?prime's?position

bool?pp[maxn]; //里面保存的是一個素數的信息

int?p[maxn]?,?cnt?=?0; //將素數保留在數組中間

int?ss[maxn]?,?tt[maxn];//在這里申請了這么多的數組我就是沒有看懂了是到底為啥

void?init()?{

????cnt?=?0;

????pp[0]?=?pp[1]?=?1;//前兩個數字都是不予考慮的

????tt[0]?=?tt[1]?=?-1;

????for(int?i=2;i<maxn;i++)?{

????????if(!pp[i])?{

????????????p[cnt++]?=?i; //這個是將素數保留在表格中間嗎?

????????????for(int?j=i+i;j<maxn;j+=i)?{

????????????????pp[j]?=?true; //這個是素數達標

????????????}

????????}

????????tt[i]?=?cnt?-?1;

????}

????for(int?i=0;i<maxn;i++)?{

????????if(!pp[i])?ss[i]?=?tt[i];

????????else?ss[i]?=?tt[i]?+?1;

????}

}

int?main()?{

????init();

????int?a?,?b?,?k;

????while(~scanf("%d%d%d"?,?&a,&b,&k))?{

????????int?s?=?ss[a]?,?t?=?tt[b];

????????int?num?=?t?-?s?+?1;

?????

????????if(num?<?k)?{//先判斷在這個區(qū)間之中里面的素數量是否達到了題目的要求,否則直//接退出

????????????printf("-1\n");

????????????continue;

????????}

????????int?ans?=?0;

????????int?tmp;

????????tmp?=?b?-?p[t-k+1]?+?1;

????????if(tmp?>?ans)?ans?=?tmp;

????????tmp?=?p[s+k-1]?-?a?+?1;

????????if(tmp?>?ans)?ans?=?tmp;

????????for(int?i=s;i+k<=t;i++)?{

????????????tmp?=?p[i+k]?-?p[i];

????????????if(tmp?>?ans)?ans?=?tmp;

????????}

????????printf("%d\n"?,?ans);

????}

????return?0;

}

//本題的主要思路是通過打表,成功后就可以比較簡單的得到結果

轉載于:https://www.cnblogs.com/tianxia2s/p/3871950.html

創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的Primes on Interval的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。