暖色空铃 2021-11-01 23:46 采纳率: 76.9%
浏览 55
已结题

素数有关的问题,超时了,求优化。

img


#include<stdio.h>
int main()
{
int a,b,c,d,i,j;
scanf("%d",&a);
while(a--)
{
scanf("%d",&b);
for(c=1,i=2;i<b/2;i++)
{
if(b%i==0)
{
for(d=1,j=2;jj<=i;j++)
{
if(i%j==0)
{
d=0;
break;
}
}
if(d&&i
i!=b)
{
for(d=1,j=2;j*j<=b/i;j++)
{
if(b/i%j==0)
{
d=0;
break;
}
}
if(d)
{
printf("Yes\n");
c=0;
break;
}
}
}
}
if(c)
{
printf("No\n");
}
}
}

  • 写回答

1条回答 默认 最新

  • qzjhjxj 2021-11-02 10:21
    关注

    供参考:

    #include <stdio.h>
    int main()
    {
        int i, j, k, t, flg, x;
        scanf("%d", &k);
        while (k--)
        {
            scanf("%d", &x);
            for (i = 2, flg = 0; i * i < x; i++)
            {
                if (x % i == 0)
                {
                    t = x / i;
                    flg = 1;
                    for (j = 2; j * j <= t; j++)
                    {
                        if (t % j == 0)
                        {
                            flg = 0;
                            break;
                        }
                    }
                    break;
                }
            }
            if (flg == 1)
                printf("Yes\n");
            else
                printf("No\n");
        }
        return 0;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 12月4日
  • 已采纳回答 11月26日
  • 创建了问题 11月1日