2016-08-26 49 views
0

輸入描述了沒有測試,後面跟着輸入數組的大小,後面跟着數組,輸出或者給出-1或給定數組中最大素數的平方。 我正在提供代碼以及預期和實際輸出以及使用的樣本標準輸入。沒有得到所需的輸出。邏輯中是否有內在的錯誤?

standard input: 
3 
5 
1 4 6 8 10 
3 
2 2 9 
2 
156 13 

expected output | getting 
-1    -1 
4     4 
169    -1 


#include <stdio.h> 
int main(){ 
int test,size; 
int i,j; 
scanf("%d\n",&test); 
while(test>=1){ 
    scanf("%d\n",&size); 
    int data[size],factors=0,max=0; 
    for(i=0;i<size;i++){ 
     scanf("%d ",&data[i]); 
     for(j=1;j<=data[i];j++){ 
      if(data[i]%j==0){ 
       factors+=1; 
      } 
     } 
     if((factors==2) && (data[i]>max)){ 
      max=data[i]; 
     } 
    } 
    if(max>=2){ 
     printf("%d\n",max*max); 
    }else{ 
     printf("%d\n",-1); 
    } 
    max=0; 
    test-=1; 
    } 
} 

回答

0

好的調試並得到了答案。因素需要在下一個for循環內初始化。