#include <stdio.h> #include <stdbool.h> int main() { //如果他是素数,那么他就是1 bool a[101]; for(int i = 0;i<101;i++){//先假设0-100的全是素数 a[i] = 1; } //因为0和1不是素数 a[0] = 0; a[1] = 0; for(int i = 2;i<101;i++){//因为2是素数,从2开始判断 if(a[i] == 1){ for(int j = i*2;j<101;j+=i){//将被2整除的数排除 a[j] = 0; } } } printf("100以内的素数有:\n"); for(int i = 0;i<101;i++){ if(a[i] == 1){ printf("%d\n",i); } } return 0; }
#include<stdio.h> int main(){ int a[100]; for(int i=0;i<100;i++) //给数组赋值1,2,3...100 a[i]=i+1; for(int i=2;i<=100/2;i++) //2~100/2为测试的因数,下面会将所有除自身外能被整除的数从新赋值为0(筛选挖走) for(int j=1;j<=100;j++){ if(j%i==0&&a[j-1]!=0&&i!=j) //若j为素数则a[j-1]赋值为0 a[j-1]=0; } printf("1-100内素数有:") ; for(int i=1;i<100;i++) //从a[1]开始,因为a[0]存的为1,1特殊,不为素数 if(a[i]!=0) printf("%d ",a[i]); return 0; }
#include<stdio.h> int main(){ int arr[100]; for(int i=1;i<=100;i++){ arr[i]=i; } arr[1]=0; for(int j=2;j<=10;j++){ for(x=j+1;x<=100;x++){ if(arr[j]!=0&&arr[x]!=0){ if(arr[x]%arr[x]==0) arr[x]=0; }}} for(int y=1;y<=100;y++){ if(arr[y]!=0){ printf("%4d",arr[y]); } } }