c语言求素数和递归

1,210 阅读1分钟

1.输入一个n,输出1到这个数之间的所有素数,n的范围为0<n<=10000

例如

#include<stdio.h>
int main()
{
   int n,sign;// sign为判断正误标记
   scanf("%d",&n);
   for(int i=2;i<=n;i++)  //i为2~n中所有的数,因为1不是素数
   {
       sign=1;
        for(int j=2;j<i;j++)  //j为2~i-1中所有的数,用判断i是否为素数
        {
            if(i%j==0)
            {
                sign=0;
            }       
        }
        if(sign==1)  //注意条件为==
        {
            printf("%d\n",i);
        }
   }
    return 0; 
}

2.输入一个数n,求它的阶乘,用递归实现。

例如

#include<stdio.h>
int main()
{
    int jie(int n);
    int n,y;
    scanf("%d",&n);
    y=jie(n);
    printf("%d!=%d\n",n,y);
    return 0;
}
int jie(int n)
{
    int j; //j为n的阶乘的值
    if(n==0||n==1)
    {
       j=1 ;
    }
    else
        j=n*jie(n-1);
    return(j);
}