c++面试题3

来源:互联网 发布:优化排名 编辑:程序博客网 时间:2024/06/01 08:05

如何求解素数问题

1、直接判断是不是素数

int is_prime(int n){    if(n ==0 || n== 1)        return 0;    if(n == 2)        return 1;    for(int i=3; i<sqrt(n); i += 2)        if(n%i == 0) return 0;    return 1;}


2、刷选法求解

//筛选法求素数#include<stdio.h>#include<math.h>#include<stdlib.h>int main(){    int num = 100;    int a[101];    for(int i=0; i<101;i++)        a[i] = i;    a[1]=0;    for(int i = 2; i< sqrt(num); ++i)        for(int j = i+1; j<=num; ++j)            if(a[j] !=0 && a[j]%i == 0)                a[j] = 0;    for(int i=1; i<=100; ++i)    {        if(a[i] !=0 ) printf("%d\t", a[i]);        if(i % 10 ==0) printf("\n");    }          return 0;}


0 0