#12969: 吃TLE 怕怕 請高手教導


timmy940410 (遊艇)


#include<iostream>
using namespace std;
int main(){
unsigned long long int x;
while(cin>>x){
if(x>0){
unsigned long long int y,i,j;
for(i=1;i*i<=x;i=i+1){
for(j=i;j*j<=x;j=j+1){
y=i*j;
}
}
if(x==y){
cout<<"yes"<<endl;
}else if(x!=y){
cout<<"no"<<endl;
}
}else{
return 0;
}
}
}

 

今年延平中學7年級第一次周考有考

//利用完全平方數的特性來找

#12970: Re:吃TLE 怕怕 請高手教導


justinO__o (夜貓)


#include
using namespace std;
int main(){
unsigned long long int x;
while(cin>>x){
if(x>0){
unsigned long long int y,i,j;
for(i=1;i*i<=x;i=i+1){
for(j=i;j*j<=x;j=j+1){
y=i*j;
}
}
if(x==y){
cout<<"yes"<<endl;
}else if(x!=y){
cout<<"no"<<endl;
}
}else{
return 0;
}
}
}

 

今年延平中學7年級第一次周考有考

//利用完全平方數的特性來找



你的複雜度是O(N)的喔

你可以一個for迴圈掃過去然後判一下有沒有i*i==x的就好了