c语言练习题求答案!

从键盘上输入一个正整数(要求大于 30 小于 100),将所有大于 1 小于该数的素数求 和,并计算素数的个数,最后把和及个数输出


#include <stdio.h>
int prime(int n)
{
    int i;
    if(n<2) return 0;
    for(i=2;i<n;i++)
    {
        if(n%i==0)
            return 0;
    }
    return 1;
}
int main()
{
    int i,n;
    int cnt=0,sum=0;
    while(1)
    {
        printf("请输入大于30小于100的整数:");
        scanf("%d",&n);
        if(n>30 && n<100)
            break;
    }
    for (i=1;i<=n;i++)
    {
        if(prime(i))
        {
            cnt++;
            sum += i;
        }
    }
    printf("count=%d,sum=%d",cnt,sum);
    return 0;
}


#include "stdio.h"
int main()
{
    int n,i,j,sum=0,flag,cnt=0;
    int a[100];
    scanf("%d",&n);
    if(n<30 || n>100){
        printf("n必须在30~100之间");
        return 0;    
    }
    for(i=3;i<n;i++){
        flag = 0;//默认i是素数
        for(j=2;j<i;j++){
            if(i % j == 0){
                flag = 1;//表示i不是素数 
                break;
            }
        } 
        if(flag==0 ){ //flag=0表示i是素数 
            cnt++;
            sum+=i;
            printf("%d\t",i);
        }
    }
    printf("\n素数的和是:%d,素数的个数是:%d",sum,cnt);
}