A. c语言素数环
#include"stdio.h"
int shu(int n)
{
int i;
for(i=2;i<=n/2;i++)
if(n%i==0) return 0;
return 1;
}
main()
{
int a,b,c,d,e,f;
for(a=1;a<=9&&a!=5;a+=2)
for(b=1;b<=9&&b!=5;b+=2)
for(c=1;c<=9&&c!=5;c+=2)
for(d=1;d<=9&&d!=5;d+=2)
for(e=1;e<=9&&e!=5;e+=2)
for(f=1;f<=9&&f!=5;f+=2)
{
if((shu(100000*a+10000*b+1000*c+100*d+10*e+f)==1)&&
(shu(100000*b+10000*c+1000*d+100*e+10*f+a)==1)&&
(shu(100000*c+10000*d+1000*e+100*f+10*a+b)==1)&&
(shu(100000*d+10000*e+1000*f+100*a+10*b+c)==1)&&
(shu(100000*e+10000*f+1000*a+100*b+10*c+d)==1)&&
(shu(100000*f+10000*a+1000*b+100*c+10*d+e)==1))
printf(" 最小的素数环为:%d", 100000*a+10000*b+1000*c+100*d+10*e+f);
goto loop;
}
loop:getchar();
}
B. 什么是有环的链表有什么特点怎麽用C语言创建
1、有环的链表指的是链表有环路,例如下面:
A->B->C->D->B,这样遍历的时候B->C->D->B就形成一个环路一直循环。
有环链表跟普通链表一样,只不过构造数据的时候会形成环路。
2、例程:
/*
结点1数据:VisualC++Windows
结点2数据:VisualC++6.0
结点3数据:VisualC++2010
结点4数据:C++PrimerPlus
结点5数据:Windows7
成功找到结点。
请按任意键继续...
*/
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
typedefstructmode{
chars[40];
//inttr;
structmode*next;
}*LinkList,*Node;
LinkListCreateList(intn){
LinkListhead;
Nodep,q;
head=p=(mode*)malloc(sizeof(structmode));
for(inti=0;i<n;i++){
q=(mode*)malloc(sizeof(structmode));
printf("结点%d数据:",i+1);
gets_s(q->s);
p->next=q;
p=q;
}
p->next=head;
returnhead;
}
boolFindNode(LinkListhead,char*s){
Nodep=head->next;
while(p!=head){
if(strcmp(s,p->s)==0)returntrue;
p=p->next;
}
returnfalse;
}
intmain(){
LinkListhead=CreateList(5);
if(FindNode(head,"Windows7"))printf("成功找到结点。 ");
elseprintf("没有找到指定数据的结点。 ");
return0;
}
C. c语言,无向图如何检测是否有环
遍历一遍,判断图分为几部分(假定为P部分,即图有 P 个连通分量)
对于每一个连通分量,如果无环则只能是树,即:边数=结点数-1
只要有一个满足 边数 > 结点数-1
原图就有环
将P个连通分量的不等式相加,就得到:
P1:E1=M1-1
P2:E2=M2-1
...
PN:EN>MN-1
所有边数(E) > 所有结点数(M) - 连通分量个数(P)
即: E + P > M 所以只要判断结果 E + P > M 就表示原图有环,否则无环.
实例代码如下:
http://www.cnblogs.com/xwdreamer/archive/2011/06/11/2297008.html
D. C语言 素数环问题
prime函数里,把条件判断x/y改为x%y
其它我没细看,有问题再告诉我吧。
E. C语言 建立一个有向图,判断该图是否存在环,如果不存在环,输出它的拓
1.拓扑排序:还有顶点未输出,但已经不存在没有前驱的顶点了2.深搜:从一个顶点出发存在搜回到自己的路径
F. 菜鸡求教C语言素数环有关问题
#include<math.h>
intmain(){
intm;//输入的整数
inti;//循环次数
intk;//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,所以有i>k
if(i>k)
printf("%d是素数。 ",m);
else
printf("%d不是素数。 ",m);
return0;
}
G. C语言,如何判断有向图里的相同的环
/*
判断相同环的基本思路:
(1)长度相同
(2)对其中一个循环左移,次数为len-1,
如果循环左移后顺序相同,则为相同环
*/
intiMovleft(char*instr)
{
intlen;
chartmp;
if(instr==NULL)return-1;
len=strlen(instr);
tmp=instr[0];
memmove(instr,instr+1,len-1);
instr[len-1]=tmp;
instr[len]='