C语言 输入一个正整数N和N个正整数,统计其中素数的和。
参考代码:
#include int main(){int n,i,j,max=0,a[100],sum=0;int p[10000]={0};scanf("%d",&n);for(i=0;imax) max=a[i];}for(i=2;i<=max;i++){if (p[i]) continue;j=2;while (i*j<=max) {p[i*j]=1;j++;}} //用筛选法筛选出素数。p[0]=1;p[1]=1;for(i=0;i<n;i++)if(!p[a[i]]){printf("%d ",a[i]);sum+=a[i];} //判断该数是否为输出,是则输出。printf("s=%d
",sum);//输出素数的和。 return 0;}
代码文本:
#include "stdio.h"
int main(int argc,char *argv[]){
int M,N,sum,t,k;
printf("Enter M & N(int 1<M<N)...
");
if(scanf("%d%d",&M,&N)==2 && M>1 && M<N){//输入M和N并判断
for(M==2 ? (k=1,sum=2) : k=sum=0,M+=!(M&1);M<=N;M+=2){//求素数
for(t=3;t*t<=M;t+=2)
if(!(M%t))
break;
if(t*t>M)//是素数时统计和及个数
sum+=M,k++;
}
printf("%d %d
",sum,k);//输出
}
else
printf("Input error, exit...
");//输入错误处理
return 0;
}
供参考……
#include<stdio.h>
int IsPrime(int n)
{
int i;
if(n==1)
return 0;
for(i=2;i<=n/2;i++)
{
if(n%i==0)
return 0;
}
return 1;
}
int main()
{
int i,N,sum=0,data[100];
scanf("%d",&N);
for(i=0;i<N;i++)
{
scanf("%d",&data[i]);
if(IsPrime(data[i]))
{
sum+=data[i];
printf("%d ",data[i]);
}
}
printf("s=%d
",sum);
return 0;
}
C语言实现如下:
#include <stdio.h>
void main()
{
int n,i,j,max=0,a[100],sum=0;
int p[10000]={0};
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
if (a[i]>max) max=a[i];
}
for(i=2;i<=max;i++)
{
if (p[i]) continue;
j=2;
while (i*j<=max)
{
p[i*j]=1;
j++;
}
} //用筛选法筛选出素数。
p[0]=1;
p[1]=1;
for(i=0;i<n;i++)
if(!p[a[i]])
{
printf("%d ",a[i]);
sum+=a[i];
} //判断该数是否为输出,是则输出。
printf("s=%d
",sum);//输出素数的和。
}
样例输入:
5
10 15 13 43 12
样例输出:
13 43 s=56
C语言 输入一个正整数N和N个正整数,统计其中素数的和。
include<stdio.h>int IsPrime(int n){int i;if(n==1)return 0;for(i=2;i<=n\/2;i++){if(n%i==0)return 0;}return 1;}int main(){int i,N,sum=0,data[100];scanf("%d",&N);for(i=0;i<N;i++){scanf("%d",&data[i]);if(IsPrime(data[i])){sum+=data[i];printf...
c语言输入一个正整数N和N个正整数,统计素数的和
参考代码:include <stdio.h>int main(){int n,i,j,max=0,a[100],sum=0;int p[10000]={0};scanf("%d",&n);for(i=0;i<n;i++){scanf("%d",&a[i]);if (a[i]>max) max=a[i];}for(i=2;i<=max;i++){if (p[i]) continue;j=2;while (i*j<=max) {p[i*j]=...
c语言如何输入一个正整数N再输入N个整数按从小到大的顺序输出
int main() { int N, i, j, temp;int arr[100]; \/\/ 假设N不超过100,可以根据需要调整大小 printf("请输入一个正整数N: ");scanf("%d", &N);if (N <= 0) { printf("请输入一个正整数。\\n");return 1;} printf("请输入%d个整数:\\n", N);for (i = 0; i < N; i++...
C语言输入一个正整数N和N个整数,将它们中的偶数按从大到小的顺序进行...
void main(){ int i,j,n,temp;for(;;){ int a[100] = {0};puts("请输入一个整数n(不要超过100)");scanf("%d",&n);puts("请输入n个数据");for(i=0; i<n; i++){ scanf("%d",&a[i]);} for(i = 0;i<n; i++){ if(a[i]%2!=0){ a[i]=0;} } for(i=0...
(C语言)输入一个正整数n, 再输入n 个整数,输出这n个整数的最大值.
include intmain(){ intn,a,i,t;scanf("%d",&n);if(n<=0){ printf("输入n的值错误");return0;} scanf("%d",&t);\/\/先读的第一个数要默认成最大的,不然,t的初值是不定的 for(i=1;i{ scanf("%d",&a);if(t} printf("%d",t);return0;\/\/ } ...
c语言如何输入一个正整数N,再输入N个整数,按从小到大的顺序输出?_百度...
void main(){ int n,i,j,t,a[10000];printf("请输入正整数N:");scanf("%d",&n);printf("请依次输入%d个数",n);for(i=0;i<n;i++){ printf("请输入第%d个数",i+1);scanf("%d",&a[i]);} for(j=0;j<n-1;j++)for(i=0;i<n-1-j;i++)if(a[i]>a[i+1]){ t...
输入一个正整数n, 再输入n个正整数,判断它们是否为素数.素数就是只能...
很高兴为你解答 答案是:你的程序结构错了,for循环是用来判断一个数是否为素数,你却在for循环中不断的读入数,而且这里n是输入的数的个数,n\/2是什么意思呢,一半的数? 你这里,一个n充当了多个用途。所以你应该用双重循环,读取一个数,再用for判断这个数是否为素数;如此继续,直到n个数读完...
用C语言编写程序,输入一个正整数n(1<n<=10),再输入n个整数,将这n个数...
int min,mx;scanf("%d",&n);for(i=0;i<n;i++){ scanf("%d",&a[i]);} for(i=0;i<n;i++){ min=a[i];mx=i;for(j=i+1;j<n;j++){ if(a[j]>min){ min=a[j];mx=j;} } j=a[i];a[i]=a[mx];a[mx]=j;} for(i=0;i<n;i++){ printf("%d ",a[i]...
c程序:输入一个正整数N和N个正整数,统计其中素数的和。
C语言实现如下:#includevoidmain(){intn,i,j,max=0,a[100],sum=0;intp[10000]={0};scanf("%d",&n);for(i=0;imax)max=a[i];}for(i=2;i
c语言输入一个正整数n ,再输入n个正整数,求n个整数之和与7 的倍数的奇...
include <stdio.h>int main(int argc,char *argv[]){ int n,sum,sum7,x,t; printf("Input n(int n>0)...\\nn="); if(scanf("%d",&n)!=1 || n<1){ printf("Input error, exit...\\n"); return 0; } for(sum=sum7=t=0;n;n--){ if(scanf(...