问题:那么我们就叫它是质数们的直接后代。现在,给你一系列自然数,判断它们是否是质数的直接后代
#include<stdio.h>
int a[30];
int zhishu(int m)
{
int i,t=0;
if(m==2)
return m;
else
{
for(i=2;i<m;i++)
{
if(m!=i&&m%i==0)
{
t=1;
return 0;
}
}
}
if(t==0)
return m;
}
int main(){
int m;
scanf("%d",&m);
int t,w;
int i,j,k;
for(k=0;k<m;k++)
scanf("%d",&a[k]);
for(k=0;k<m;k++)
{
t=0;
for(i=2;i<a[k];i++)
{
if(zhishu(i))
{
if(a[k]%i==0)
{
w=a[k]/i;
if(zhishu(w)&&i<=w)
{
t=1;
printf("Yes\n");
}
}
}
}
if(t==0)
{
printf("No\n");
}
}
return 0;
}
这个程序怎么才能降低时间复杂度啊