输出只有两个不同质因子的数 筛法,然后细节处理下,水题,英语水平要提高,嗯嗯。 #include <stdio.h> #include <stdlib.h> int main() { int n,i,j,p=0,q=0,num,k,count,flag,jilu; int a[10000]; a[0] = 0; a[1] = 0; for(i=2;i<=10000;i++) a[i]= i; for(i=2;i<=5000;i++) if(a[i]) for(j=2;j*i<10000;j++) a[j*i] = 0; scanf("%d",&n); count = 0; for(i=3; i<=n; i++) { num = i; j = 2; flag = 1; q = 0; jilu = 0; while(num!=1) { if( jilu > 2 ) { flag = 0; break; } if( a[j] ) { if( num%a[j] == 0) jilu++; while( num%a[j]==0 ) { num = num/a[j]; } } j++; } if( flag ) if( jilu == 2 ) { count++; } } printf("%d/n",count); return 0; }