C语言例题:求100-300之间的全部素数(质数)及相关例题

C/C++
615
0
0
2022-11-30

1.求100-300之间的全部素数(质数)

素数:除了1和这个数本身之外,没有第二个数可以被这个数整除。

n:n%2==0 n%3==0...n%(n-1)==0

#include<stdio.h>
int main(){
    for(int i=100;i<=300;i++){
        int flag=0;//素数 
        for(int j=2;j<=i-1;j++){
            if(i%j==0){
                flag=1;//不是素数 
                break; 
            }
        } 
        if(flag==0)printf("%d\n",i);
    }
    return 0;
} 

2.1!+2!+3!+...+50!=?

5!=1*2*3*4*5

#include<stdio.h>
int main(){
    double sum=0;
    double t=1;
    for(int i=1;i<=50;i++){
        t=t*i;//t=1 t=1*2 t=1*2*3 t=1*2*3*4
        sum=sum+t;
    }
    printf("%e",sum);
    return 0;
} 

另一种解法:

#include<stdio.h>
int main(){
    double sum=0;
    for(int i=1;i<=50;i++){
        //1.求i的阶乘 
        double t=1; 
        for(int j=1;j<=i;j++){
            t=t*j;
        }
        sum=sum+t;
    }
    printf("%e",sum);
    return 0;
} 

3.一个数如果正好等于这个数的因子之和,称这个数为“完数”。求2-1000之间所有的完数。

n:n%1==0 n%==0.....n%(n-1)==0

#include<stdio.h>
int main(){
    for(int i=2;i<=1000;i++){
        int sum=0;
        for(int j=1;j<=(i-1);j++){
            if(i%j==0)sum=sum+j;
        }
        if(i==sum)printf("%d\n",i);
    }
    return 0;
}