代做毕业设计网站现成,南京网页空间,视频logo免费生成网站,网络程序题意#xff1a;定义了一种H素数#xff0c;改素数的定义是能够被4整除余数为1#xff0c;然后给定一个n值#xff0c;问1到n中有多少个只被分解成两个H素数的数#xff0c;题目很绕#xff0c;H素数和他要球的东西一直搞不明白#xff01;思路#xff1a;最好的办法是…题意定义了一种H素数改素数的定义是能够被4整除余数为1然后给定一个n值问1到n中有多少个只被分解成两个H素数的数题目很绕H素数和他要球的东西一直搞不明白思路最好的办法是打一张H素数表然后利用这张素数表打印另外一张符合条件的素数表当然直接去打可能会出现存不下的现象反正给定的n都是4k1那么可以只打k的一张表来节省空间打素数的时候也要格外注意我就是因为没有注意重复“莫名”地wa了两次具体的实现就有点像筛素数的方法了。code#include iostream#include cstdio#include cmath#include set#include cstring#include algorithmusing namespace std;const int N1000005;int f[N/4]; //节省空间int vis[N];void shui(){ memset(vis,-1,sizeof(vis)); //两次筛一次筛H素数另一次筛符合条件的数 int s0; for (int i5;iN;i4) for (int j5;i*jN;j4) { if (vis[i]-1vis[j]-1) vis[i*j]1; else vis[i*j]0; } for (int i1;iN/4;i) { if (vis[i*41]1) s; f[i]s; }}int main(){ //freopen(out.txt,w,stdout); shui(); int n; while (~scanf(%d,n)n) printf(%d %d\n,n,f[(n-1)/4]);}