(1)没优化代码
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int su(int x)
{
int i,ans=1;///0-不是素数,1-是素数
if(x==1)
{
ans=0;
}
for(i=2;i<x;i++)
{
if(x%i==0)
{
ans=0;
}
}
return ans ;
}
int main()
{
int n;
scanf("%d",&n);
int i;
int c,flag;
for(i=0;i<n;i++)
{
scanf("%d",&c);
flag=su(c);
if(flag==1)
{
printf("Yes\n");
}
if(flag==0)
{
printf("No\n");
}
}
return 0;
}
(2)优化代码
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int su(int x)
{
int i,ans=1;///0-不是素数,1-是素数
if(x==1)
{
ans=0;
}
for(i=2;i<=sqrt(x);i++)
{
if(x%i==0)
{
ans=0;
}
}
return ans ;
}
int main()
{
int n;
scanf("%d",&n);
int i;
int c,flag;
for(i=0;i<n;i++)
{
scanf("%d",&c);
flag=su(c);
if(flag==1)
{
printf("Yes\n");
}
if(flag==0)
{
printf("No\n");
}
}
return 0;
}
优化部分:
for(i=2;i<x;i++)改成 for(i=2;i<=sqrt(x);i++)。减少了计算运行次数。