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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

zoj 2723 Semi-Prime

發(fā)布時(shí)間:2024/10/12 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 zoj 2723 Semi-Prime 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
// 題意都不好理解 我以為是求 一個(gè)數(shù)被分成2個(gè)素?cái)?shù)和 然后是求分成2個(gè)素?cái)?shù)積
// 坑爹 忘記寫(xiě) !=EOF 然后一直超時(shí) 然后換了幾種 還是超時(shí) 一看別人代碼 速度明顯比我慢
// 然后發(fā)現(xiàn)被自己坑了

#include <iostream> #include <math.h> #include <map> #include <stack> #include <queue> #include <vector> #include <algorithm> #include <stdio.h> #include <string.h> using namespace std; #define maxm 10010 #define maxn 1000010 int gcd(int a,int b){int r;while(r=a%b){a=b;b=r;}return b; } bool isp(int n){if(n==2) return true;if(n%2==0||n==1) return false;int m=(int)(sqrt(n+1.0));for(int i=3;i<=m;i+=2)if(n%i==0) return false;return true; } int fun(int n){int m,i;if(n%2==0){if(isp(n/2))return 1;elsereturn 0;}else{int k;m=(int)(sqrt(n+1.0));k=0;for(i=3;i<=m;i+=2)if(n%i==0){if(isp(i)&&isp(n/i)){return k=1;// printf("Yes\n");break;}}if(!k) return 0; //printf("No\n"); } } int main() {int n;int m;int i,k;while(scanf("%d",&n)!=EOF){if(fun(n)) printf("Yes\n");else printf("No\n");}return 0; }

// 郁悶 求出所有素?cái)?shù) 還是不如上述快

#include <iostream> #include <math.h> #include <map> #include <stack> #include <queue> #include <vector> #include <algorithm> #include <stdio.h> #include <string.h> using namespace std; #define maxm 10010 #define maxn 1000010 int prim[maxn/3],p; bool f[maxn]; int gcd(int a,int b){int r;while(r=a%b){a=b;b=r;}return b; } bool isp(int n){if(n==2) return true;if(n%2==0||n==1) return false;int m=(int)(sqrt(n+1.0));for(int i=3;i<=m;i+=2)if(n%i==0) return false;return true; } int getprime(){int i,j;f[1]=true;for(i=4;i<=maxn;i+=2)f[i]=true;int m=(int)(sqrt(maxn+1.0));for(i=3;i<=m;i+=2){for(j=i*i;j<=maxn;j+=i)f[j]=true;}for(i=1;i<=maxn;i++)if(!f[i]) prim[p++]=i; } int main() {int n;int m;int i,k;getprime();while(scanf("%d",&n)!=EOF){m=(int)(sqrt(n+1.0));k=i=0;while(prim[i]<=m){if(n%prim[i]==0&&!f[n/prim[i]]){k=1;break;}i++;}if(!k) printf("No\n"); else printf("Yes\n");}return 0; }

?

?

轉(zhuǎn)載于:https://www.cnblogs.com/372465774y/p/3208798.html

總結(jié)

以上是生活随笔為你收集整理的zoj 2723 Semi-Prime的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。