zoj 2723 Semi-Prime(专门做数论的第一道水水~~)

好吧 我觉得我英语实在是要提升了!!!我了个去!!!这句话it can be decompounded to TWO prime numbers我把它理解为可以弄成两个素数的和了!!!然后就考虑打表去做,然后一直数据量太大!时间好长,然后我就弄出来这种理解的做法了,输进12,刺眼的YES!!居然样例都过不了。。。我开始审查我的代码了。。。开始想 为啥12过不了。。。不对,按我的想法,12=5+7。。这不俩素数嘛!!!我晕。。。开始仔细看题。。。这个单词实在不知道是啥。。。但是既然不是加。。。那就是乘了!!乘的话就水多了,直接求有多少个质因子,如果只有两个,那就YES。。。。啧啧。。。

 

#include <stdio.h> #include <stdlib.h> #include <iostream> using namespace std; int prim[1000002]; void pri() { prim[0] = prim[1] = 0; for(int i=2; i<=1000000; i++) prim[i] = i; for(int i=2; i<500000; i++) if( prim[i] ) for(int j=2; j*i<=1000000; j++) prim[j*i] = 0; } int main(void) { int n,i,q; pri(); while( scanf("%d",&n) != EOF ) { i = 0;q = 0; while(n!=1) { if( prim[i] ) { while( n%prim[i] == 0 ) { n = n/prim[i]; q++; } } i++; } if(q == 2) printf("Yes/n"); else printf("No/n"); } return 0; }  

你可能感兴趣的:(zoj 2723 Semi-Prime(专门做数论的第一道水水~~))