2020-10-07

    科技2024-06-08  73

    求素数

    一.基本算法(以判定数n为例)

    (1)采用标记(如 f=1)(以判定数 n 为例) 方法一: f=1; for(i=2;i<=n-1;i++) if(n%i= =0) {f=0;break;} if(f= =1) printf(“YES”); else printf(“NO”); 方法二: int fun(int n) { int i,f; f=1; for(i=2;i<=n-1;i++) if(n%i= =0) {f=0;break;} return f; } (2)不采用标记(以判定数n为例) 方法一: for(i=2;i<=n-1;i++) if(n%i= =0) break; if(i= =n) printf(“YES”); else printf(“NO”); 方法二: int fun(int n) { int i; for(o=2’o<=n-1;i++) if(m%i= =0) return 0; return 1; } (3)筛选法 #include<stdio.h> #include<math.h> #define N 101 main() { int i,j,k; int a[101]; for(i=1;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; } for(i=2;i<N;i++) if(a[i]!=0) printf("%5d",a[i]); }

    Processed: 0.016, SQL: 8