本篇文章给大家谈谈素数环c语言,以及素数环问题c语言对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
1、菜鸡求教C语言素数环有关问题2、C语言素数环问题,求指出错误。3、C语言素数环问题:输入n,输出n以内的素数环。我感觉思路是对的,怎么没有输出,请大侠看看!4、C语言 素数环问题5、C语言素数环优化
菜鸡求教C语言素数环有关问题
#include math.h
int main() {
int m; // 输入的整数
int i; // 循环次数
int k; // m 的平方根
printf(“输入一个整数:”);
scanf(“%d”, m);
// 求平方根,注意sqrt()的参数为 double 类型,这里要强制转换m的类型
k = (int)sqrt((double)m);
for (i = 2; i = k; i++)
if (m%i == 0)
break;
// 如果完成所有循环,那么m为素数
// 注意最后一次循环,会执行i++,此时 i=k+1,所以有ik
if (ik)
printf(“%d是素数。\n”, m);
else
printf(“%d不是素数。\n”, m);
return 0;
}
C语言素数环问题,求指出错误。
你能把这个程序的算法过程解释一遍吗?
你这个程序有不少问题啊。
比如:if(vis[i]==0isp[i+A[cur-1]]==1)
第一次,你的cur为0.这个时候A[cur-1]就是A[-1]了,这个根本就越界了。问题不少啊。
C语言素数环问题:输入n,输出n以内的素数环。我感觉思路是对的,怎么没有输出,请大侠看看!
#includestdio.h
#includestring.h
int is_prime(int x)
{
int i,flag;
for(i=2;i=x/2;i++)
if(x%i==0)
return 0;
return 1;
}
void dfs(int n,int *a,int *isp,int *vis,int cur)
{
if(cur==nisp[a[0]+a[n-1]])
{
for(int i=0;in;i++)
printf(“%d “,a[i]);
printf(“\n”);
return ;
}
else
for(int i=1;i=n;i++)
if(!vis[i]isp[i+a[cur-1]])//如果i没有用过,并且与前一个数之和为素数
{
a[cur]=i;
vis[i]=1;
dfs(n,a,isp,vis,cur+1);
vis[i]=0;
}
}
int main()
{int i,n,a[100],isp[100],vis[100];
memset(vis,0,sizeof(vis));
memset(isp,0,sizeof(isp));
scanf(“%d”,n);
for(i=0;in;i++)
a[i]=i+1;
for(i=1;i100;i++)
isp[i]=is_prime(i);
dfs(n,a,isp,vis,0);
return 0;
}
判断素数有问题
C语言 素数环问题
prime函数里,把条件判断x/y改为x%y
其它我没细看,有问题再告诉我吧。
C语言素数环优化
是不是等待输入也计算时间了,那超时就很不好说了。。。。。。。如果真那样,就不让输入,使用默认的数
~
~
~
关于素数环c语言和素数环问题c语言的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。