一段判断合数的代码,请高手指点问题所在!Thanks:)
/*输入自然数n,求前n个合数(非素数),其因子仅有2,3,或5。*/#include<iostream>#include<stdio.h>#include<time.h>using namespace std;int main(){ freopen("input.txt","r",stdin); freopen("output.txt","w",stdout); int n,count=0; bool ok=false,ok2=false; cin>>n; for(int i=1;i<=n;i++) { for(int j=1;j<=i;j++) { if(i%j==0)count++;//判断是否为合数setp1 //cout<<i<<" "<<j<<" "<<count<<endl; } if(count>2)//判断是否为合数setp2 { ok2=true; if((n%2==0)||(n%3==0)||(n%5==0))//素因子包含2、3或5 ok=true; for(int n=1;n<=i;n++) { if((n!=i)&&(n!=1)) { if((n!=2)&&(n!=3)&&(n!=5)) { if(i%n==0)ok=false; } } } } if(ok&&ok2) { cout<<i<<" "; cout<<count<<endl; } count=0; } printf("Time used=%.21f",(double)clock()/CLOCKS_PER_SEC); return 0;}