怎么写:编写判断素数的函数,输出1000以内所有素数,(提示:是素数返回值为1,不是返回值为0)

kingsssup
浏览 2099回答 3
3回答

慕沐4449596

#include<stdio.h>#include<math.h>int sushu(int n);#define N 1000int main(){ int i,t; for(i=2;i<N;i++) { t=sushu(i); if(t) printf("%d\t",i); } putchar('\n'); return 0;}int sushu(int n){ int i; if(n==2||n==3) return 1; if(n%6!=1&&n%6!=5) return 0; int temp=sqrt(n); for(i=5;i<temp;i+=6) if(n%i==0||n%(i+2)==0) return 0; return 1;}这个运行起来就快一点

慕沐4449596

#include<stdio.h>int sushu(int n);#define N 1000int main(){ int i,t; for(i=2;i<N;i++) { t=sushu(i); if(t) printf("%d ",i); } putchar('\n'); return 0;}int sushu(int n){ int i; for(i=2;i<n;i++) { if(n%i==0) break; } if(i>=n) return 1; else return 0;}用分函数表示就是这样

昵称好难起757

#include "stdio.h"#include "math.h"main(){ int m,i,k,h=0,leap=1; printf("\n"); for(m=2;m<=1000;m++) { k=sqrt(m+1); for(i=2;i<=k;i++) if(m%i==0) { leap=0;break; } if(leap) { printf("%-4d",m); h++; if(h%10==0) printf("\n"); } leap=1; } printf("\nThe total is %d",h); return 0;}
打开App,查看更多内容
随时随地看视频慕课网APP