素数环c语言代码,C 素数环

1,C 素数环我认为的问题:1、函数返回值定义为int 类型的 , 而实际函数中没有返回值 。2、bool pd(int x,int y)在这个函数中少了一个大括号 。3、if (pd(a[i-1],i)&&(!b[i]))应该改为if (pd(a[t-1],i)&&(!b[i]))【素数环c语言代码,C 素数环】
2,c语言输出素数的两种代码是什么求解答谢谢#include <stdio.h>int ss(int i) int n; for(n=2;n<i;n++)if(i%n==0)return 0;} } return 1;}main() printf("100以内的素数是\n"); int n; for(n=2;n<100;n++)if(ss(n))printf("%d ",n);} }}
3 , 用c语言循环语句实现1到100的素数求和#include <stdio.h>//头文件引入int main()int a,b,c;a=2;//起始b=100;//结束c=0;//临时存值for(;a<=b;a++)int tmp = 1,ft = 1;for(;tmp<100;tmp++)if(tmp == a || tmp == 1)//跳过自身和1的时候的处理}else if(a%tmp==0)ft = 0;//变为假}}if(ft)c+=a;//相加}}printf("1到100的素数和:%d\n",c);//结果}代码编译查看:#include "stdio.h"int prime(int num) //prime判断素数int i = 0;for (i = 2; i <= num / 2; i++)if (num%i == 0)return 0;}}return 1;}int main()int sum = 0, i;for( i = 2; i < 101; i++)if (prime(i))sum = sum + i;}printf("1到100的素数和= %d\n",sum);return 0;}
4,C语言编程关于素数#include<stdio.h>voidmain()n++;if(n==6)printf("\n");}}int prime(int n)#include <stdio.h>#include <math.h>void main(){int i,j,k;k=1;for(i=2;i<=100;i++){for(j=sqrt(i);j>=2;--j)if(i%j==0)break;if(j==1){if(k%6==0)printf("%2d\n", i);elseprintf("%2d ", i);k++;}}}#include <stdio.h>#include <math.h>bool fun(int a)void main()如有问题,请追问5,c语言素数环问题求改错不要其他代码就帮我改一下不清楚你是要求1-20所有长度的素数环还是要求长度为20的所有素数环按照后者给你改了一版程序出来需要注意的有两点一个是由于要递归尝试下一个数值 , 所以用来存结果的数组必须要作为参数传进去另一个 必须有一个数组作为标志 表示哪些数用过 因为1-20是不能重复使用的最后说明一下 在你这个基础上改出来的是求长度为20的所有素数环 这是一个相当大的数量截止回答时 我的机器还在继续往出打印 如果想只求出一组就退出运行 可以把search中n==20判断里面的return 改成exit(0) (注意要添加stdlib头文件)代码如下#includeint sushu(int i); void search(int a[],int b[], int n); //目测程序功能为求长度为20的素数环 int a[21]; int b[21]; //用来标记某个数是否被用过 void main() { int i; // for(i=1;i<21;i++)//如果只是寻找固定的20个数,那么没必要循环 a[0] =b[0] =1; search(a,b,1);//由于需要递归 所以要把数组做为参数 // printf("result:\n"); //结果在search中输出 } void search(int a[],int b[], int n) { int j,k,t; if(n == 20) { if(sushu(19)) { for(j = 0; j < 20; j ++) printf("%d ", a[j]); printf("\n"); } return ;//只打印一组的话 这里改成exit(0); } for(k=1;k<21;k++) { if(b[k] == 1) continue;//数字k+1已用 a[n]=k+1; b[k] = 1; if(sushu(n-1)) search(a, b, n+1); b[k] = 0; } } int sushu(int i) { int j,b; if(i==19) a[20]=a[0]; for(j=2;j { b=(a[i]+a[i+1])%j; if(b==0) return 0;} if(a[i]+a[i+1]==j) return 1; }#include#include #define max 100 int main() { int z,c=0,i,j,k,n,a[max]; int flag; //增加判断标志 scanf(&qu畅鸡扳课殖酒帮旬爆莫ot;%d",&n); if(2<=n) //2这个素数先拎出来,因为他是唯一偶数 a[c++]=2; for(i=3;i<=n;i+=2)// 判断每个奇数是否素数,因为偶数肯定不是素数 { flag=1; //判断每个数之前,标志先设为1 for(j=3;j { //这里其实可以更快,不过要引入math.h z=i%j; if(z==0) { flag=0; 如果能整除,flag=0表示不是素数 break; } } if(flag) 如果flag=1没变,表示没有数能整除,i就是奇数 a[c++]=i; } for(i=0;i printf("%d ",a[i]); printf("%d",c); system("pause"); return 0; }

    推荐阅读