c语言输出100以内的所有素数,C语言编一个程序求100以内的全部素数

1,C语言编一个程序求100以内的全部素数#include<stdio.h> int prime(int n)//求素数过程,是返回1,不是返回0 for(int i=2;i<int(n);i++) if (n%i==0)return 0; return 1; } void main() int i=0; for(int j=2;j<100;j++) if(prime(j)==1)}一百以内的素数除能被1和它本身整除外不能被任何数整除的数就是素数:void main()int i,j,k;for(i=1;i<=100;i++)for(j=2;j<i;j++)if(i%j!=0)printf("%d",i);}}#include<stdio.h> #include<time.h> #define N 10000000 //你要求的范围的最大值 int a[N]; void prime(long n) //用筛法将不是素数的值置0 long i,j; a[1]=0; for(i=2;i<n;i++) a[i]=1; for(i=2;i<n/2;i++) if(a[i]) for(j=i*2;j<n;j=j+i) a[j]=0; } int main() int n,i; while(scanf("%d",&n)) prime(n); for(i=2;i<=n;i++) if(a[i]) printf("%d\t",i); } return 0; } 可以输出10000000以内的所有素数,计算过程不到1秒,但输出的时候就比较多了#include "stdio.h"void main()int n,i;printf("自数1~100全部素数:\n");for(n=2;n<=100;n++)for(i=2;i{ if (n%i == 0) break; } if(i>=n) printf("%d\n",n); } }int i,j,flag,count;int prime[100];count=0;for( i = 1 ; i < 101 ;i ++ ) flag = 0; for( j = 2 ; j < (i+1)/2 ; j++ )if ( i % j == 0 )flag = 1;break;} } if ( flag == 0 || i == 2 )prime[count] = i;count++; }}
2,c语言输出100之内的所有素数每行输出10个素数 不要课本上12345678910111213141516171819202122232425 //代码1#include <stdio.h>intisprime( intn ) if( n < 2 ) return0; for( inti = 2; i < n; ++i ) if( n % i == 0 ) return0; } return1;}intmain() intcnt = 0; for( inti = 0; i <= 100; ++i ) if( isprime(i) ) printf( "%d ", i ); cnt++; } if( cnt == 10 ) cnt = 0; printf( "\n"); } } return0; }12345678910111213141516171819202122232425262728 //代码2#include <stdio.h>#include <math.h>//时间复杂度O(n^2) intisprime( intn ) if( n < 2 ) return0; intm = sqrt( n + 0.5 );//这里可以稍微改进一下 。for( inti = 2; i <= m; ++i ) if( n % i == 0 ) return0; } return1;}intmain() intcnt = 0; for( inti = 0; i <= 100; ++i ) if( isprime(i) ) printf( "%d ", i ); cnt++; } if( cnt == 10 ) cnt = 0; printf( "\n"); } } return0; }123456789101112131415161718192021222324252627 //代码3#include <stdio.h>#include <math.h>intcheck[ 110 ];//时间复杂度O(nloglogn) voidget_table( intn ) for( inti = 2; i <= sqrt( n + 0.5 ); ++i ) if( !check[i] ) for( intj = i * i; j <= n; j += i ) check[j] = 1; }intmain() get_table( 100 ); intcnt = 0; for( inti = 2; i <= 100; ++i ) if( check[i] == 0 ) printf( "%d ", i ); cnt++; } if( cnt == 10 ) cnt = 0; printf( "\n"); } } return0; }测试结果如下:【c语言输出100以内的所有素数,C语言编一个程序求100以内的全部素数】
3,编程并输出100内的所有素数#include<stdio.h>#include<math.h>main()int i,k,m;for(i=1;i<=100;i++)for(m=2;m<=k;m++)if(i%m==0)break;if(m>=k+1)print("%3d",i);}}所有素数我给你个思路,让你好做定义一个标志变量flag并初始化为0, , 非素数为1for(n=2;n<=100;n++)for(i=2;i<n/2;i++)if(n%i)flag=1;if(flag==0)printf("%d",n);输出n以内的所有素数想输出100内的所有素数,就输入100#include <stdio.h>void main() int n; scanf("%d", &n); printf("1—%d以内的素数有:\n", n); if(n == 1)printf("没有素数\n"); else if( n > 1)for(int i = 2; i <= n; i++)int j;for(j = 2; j < i; j++)if(i % j == 0)break;}if( j >= i)printf("%d ", i);}printf("\n"); }}inti=1;//循环变量bools;//表示是否为素数for(;i<100;i++)s=true;//假设当前的i为素数for(intj=2;j<i;j++)//如果i能被它本身和1以外的数整除,那么他就不是素数if(i%j==0)s=false;}//如果是素数则输出if(s)console.writeline(i.tostring());}int i = 1;//循环变量bool s; //表示是否为素数for (; i < 100; i++){s = true;//假设当前的i为素数for (int j = 2; j < i; j++){//如果i能被它本身和1以外的数整除,那么他就不是素数if (i % j == 0)s = false;}//如果是素数则输出if (s)console.writeline(i.tostring());}#include <stdio.h> #include "math.h"#define N 101 main() int i,j,line,a[N]; for(i=2;i <N;i++) a[i]=i; for(i=2;i <sqrt(N);i++)for(j=i+1;j <N;j++)if(a[i]!=0&&a[j]!=0)if(a[j]%a[i]==0)a[j]=0;} printf("\n"); for(i=2,line=0;i <N;i++)if(a[i]!=0)line++;}if(line==10)line=0;} } }

    推荐阅读