C语言程序设计题:求素数的个数

原题是这样的。
输入描述:输入数据首先包含一个整数N表示数据的个数。然后是N个大于1的32位int。
输出描述:请判断并输出N个数中素数的个数。
输入样例:5 3 4 8 9 11
输出样例:2
答得好可以追加悬赏。

先编写一个判断素数的函数,类型为bool型
bool Isprime(int number)
{
for (int i = 2; i < number; i++)
if (number mod i != 0)
return false;
return true;
}

上面的代码还可以继续优化,只是给你提供个思路
然后在主函数里面循环调用这个函数 比如数组num[N] 循环N次,将num[i] 作为参数调用上面的函数,然后看返回值,如果未true 素数的个数+1,就可以了
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2018-02-27
#include <stdio.h>
#include <math.h>
int ss(int n) /*检查n是否为素数,如果是则返回1,否则返回0*/
{
int i;
if(n<2) return 0;
for (i=2; i<=(int)sqrt((double)n); i++)
if (n%i==0) return 0;
return 1;
}

int main(void)
{
int i,sum=0,n,a;
scanf("%d",&n);
for (i=1; i<=n; i++)
{
scanf("%d",&a);
if(ss(a))
sum+=1;
}
printf("%d\n",sum);
return 0;
}本回答被提问者和网友采纳
第2个回答  2011-11-22
#include <stdio.h>
#include <math.h>
int isPrium(int n)
{
int i;
for(i=2;i<sqrt(n);i++) //优化判断素数算法
{
if(i%2==0)
return 0;
}
return 1;
}

void main()
{
int i,n,a[32],count = 0;
printf("请输入整数N:");
scanf("%d",&n);
for(i = 0;i<n;i++)
{
scanf("%d",&a[i]);
if(isPrium(a[i]))
{
count++;
}
}
printf("%d",count);
}

望采纳
第3个回答  2011-11-22
#include "stdio.h"
int prime(int a)
{
int i,j,flag=1;
j=sqrt(number);
for(i=2;i<=j;i++)
{
if(number%i==0)
{
flag=0;
break;
}
}
return flag;
}
main()
{
int n,a[200],k=0;
printf("请输入整数的个数N:");
scanf("%d",&n);
printf("请输入%d个整数:",n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
for(i=0;i<n;i++)
{
if(prime(a[i]))
k++;
}
printf("素数个数有%d个",k);
getch();
}
第4个回答  2011-11-22
#include<stdio.h>
void main()
{
int i,j,n;
int a[100];
int count=0;
printf("输入整数的个数: ");
scanf("%d",&n);
printf("输入大于1的整数: \n");
for(i=0;i<n;i++){
printf("a[%d]= ",i);
scanf("%d",&a[i]);
if(a[i]<=1){
printf("%d无效,请重新输入: ",a[i]);
i--;
}
}
for(i=0;i<n;i++){
count=0;
for(j=2;j<=a[i]/2;j++)
if(a[i]%j!=0)
count++;
}
printf("素数个数为: %d\n",count);
}

C语言编程求素数的个数,计算1到1000000000(10亿)以内的素数个数,有多少...
int main(){int CompositeNumFilterV3(int);int m,c;cin>>m;c=CompositeNumFilterV3(m);cout<<c<<endl;return 0;}\/\/求素数的程序 int CompositeNumFilterV3(int n){ int i, j;\/\/素数数量统计 int count = 0;\/\/ 分配素数标记空间,明白+1原因了吧,因为浪费了一个flag[0]char* flag ...

用C语言编写程序,求[666,777]范围内素数的个数?
include <stdbool.h> \/\/ 函数声明 bool isPrime(int n);int main(){ int count = 0; \/\/ 记录素数的个数 \/\/ 枚举区间 [666,777] 中的所有数 for (int i = 666; i <= 777; i++){ \/\/ 如果当前数是素数,素数的个数加 1 if (isPrime(i))count++;} printf("[666,777] 范围内...

C语言程序设计题:求素数的个数
先编写一个判断素数的函数,类型为bool型 bool Isprime(int number){ for (int i = 2; i < number; i++)if (number mod i != 0)return false;return true;} 上面的代码还可以继续优化,只是给你提供个思路 然后在主函数里面循环调用这个函数 比如数组num[N] 循环N次,将num[i] 作为参数...

c语言:输出1000以内所有的素数,并统计素数的个数,要求每行输出8个数...
\/\/输出1000以内的素数,统计素数的个数,要求每行输出8个数#include <stdio.h>int main(){int i;int count = 0; \/\/记录共有多少素数int count1 = 0; \/\/每8个素数就打一个回车int sushu(int i); \/\/判定素数的函数for (i = 2; i < 1000; i++) \/\/取2到999之间的素数{if (...

求一个用c语言编程的一个程序。让输出一1000以内的全部素数
素数的判断:除了1和它本身以外不再有其他的因数。此程序可按照以下流程:1、主函数中进行循环,从2到1000 2、如果当前循环的数是素数,就将其输出 判断一个数num是否是素数,可按照以下流程:1、循环,从2到num-1 2、如果当前循环的数能被num整除,则num不是素数 3、没有num能整除的数,表明num...

...之内所有的素数(注意:素数即质数)及个数(C语言)
} printf("共有%d个素数\\n",m); getchar(); return 0;} snrbj1988 | 发布于2011-04-07 举报| 评论 6 5 为您推荐: 编写程序输出如下图形 编写一个程序输出菱形 请编写程序将 编写一个加密程序 输出下列图案 linux编写c语言程序 c编写程序界面 编写金字塔 小程序 中断服务程序怎么写 ...

c语言,求100到999之间素数的个数
for(i = 100 ; i <= 999 ; i ++ ) \/* 从 100 到 999 循环判断素数 *\/ { for( j = 2 ; j <= ( i-1) ; j ++)if( ( i % j ) == 0 ) \/* 如果该数能够被其中的一个整数整除,则该数不是素数 *\/ break ; \/* 跳出该循环体,继续寻找下一个 *\/ else \/* 否则...

C语言编程:输入N个整数 ,统计素数的个数。
00.c:int isprime(int n){for(int i=2;i*i<=n;i++) if(n%i==0)return 0; return n>1; }0.c:#include<stdio.h>#include<d:\\\\00.c>int main(){int x=1,n,k=0; scanf("%d",&n); while(n--) {scanf("%d",&x); k+=isprime(x); } printf("%d\\n",k); ...

c语言求素数个数
1;}void main(){ int n=0,i=0,j=0;char counter=1;int sum=0;srand(time(0));n=rand()%100+1;\/*随机函数*\/printf("产生的随机数为%d\\n",n);printf("不大于%d的素数序列如下\\n",n); if(n>2){ printf("%4d",2);j++;} for(i=3;i<=n;i+=2) {if(prime(i)...

统计并输出3-100之间所有素数的个数 c语言
输出3-100之间的所有素数并统计个数:include "stdio.h"include "math.h"void main(){ int x,y,num=0;for(x=3;x<=100;x++){ for(y=2;y<=sqrt(x);y++)if(x%y==0)break;if(y>sqrt(x)){ printf("%d\\n",x);num++;} } printf("3-100之间的素数有%d个!\\n",num);} ...

相似回答