poj3292-类素数筛选法
2024-08-27 12:03:50
#include<iostream>
using namespace std;
const int N=1000002;
int array[N]={0};
int main(){
int n;
for(int i=5;i<=N;i+=4){
for(int j=5;j<=N;j+=4){
int num=i*j;
if(i*j>N)
break;
if(array[i]==0&&array[j]==0)
//如果 i,j 目前都不为两个数的乘积,那么i*j就是由两个类素数相乘的积;如果之后 i,j 不是类素数,那么由下面的语句也会将其替换成-1.
array[num]=1;
else
array[num]=-1;
}
}
int count=0;
for(int i=0;i<N;i++){
if(array[i]==1)
count++;//设置累加器,输出所求数的个数
array[i]=count;
}
while(cin>>n,n!=0){
cout<<n<<" "<<array[n+1]<<endl;
}
return 0;
}
最新文章
- 2016苹果春季发布会 iPhone SE发布
- Linux 问题汇总
- Python基础4- 字符串
- python watchdog
- winform 属性
- java-访问权限
- Cookie/Session机制具体解释
- python基础操作_集合_三元运算
- 解决Cordova安装Cannot find module &#39;bplist-parser&#39;问题
- Animations in UWP Community Toolkit - Overview
- SQLServer之创建唯一聚集索引
- 关于confluence上传文件附件预览查看时出现乱码的问题解决办法
- pythonのsimple_tag
- icons 在线网站
- dotnet ef
- 强化学习---A3C
- Maven单独构建多模块项目中的单个模块
- SQL语句之order by 、group by、having、where
- Ionic学习资源
- 解决git pull 每一次都需要输入密码的问题