当前位置:首页 » 编程语言 » c语言输出20以内所有质数
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言输出20以内所有质数

发布时间: 2023-01-02 12:44:33

1. 用c语言如何求前20个质数

flag=0;
num=1;
for(i=1,i<1000,i++)
{
for(j=1,j<i,j++)
{
if (mod(i/j)==0) then
{
flag=1;
break;
}
}
if (flag==1) then
flag=0;
continue;
else
printf(i);
num=num++;
if (num>10) then break;
endif
}
大约是这样子,好久没写C了 语法都忘干净了。
最笨的方法:双循环 第一循环遍历1-1000的整数。第二循环判断该整数是否能被1和他本身以外的地数整除,如果能则跳出循环试下一个数,如果该数是质数则打印,累加器计数。直到找出10个数 结束外层循环。

2. C语言 求10-20以内素数之和

{
int m,i;
for(m=2;m<=10;m++)
{
for(i=2;i<m;i++)
if(m%i!=0) /*为什么要用!=呢,这样只要遇到不能被整除的数就会结束循环,这样有些数字就会判断错误*/
break; //跳出内层循环
printf("%3d",m); /*这个输出在外层循环中,只要内层循环结束,就会执行,所以就算break起作用了,也只是跳出内层循环,还是会执行这一句,所以会顺序输出m的值*/
}
}

改:
{
int m,i;
for(m=2;m<=10;m++)
{
for(i=2;i<=m;i++) //改成i<=m,因为素数只能被1和他本身整除
if(m%i==0)//判断是否有数能将m整除
break; //有则跳出内层循环
if(i==m)/*如果m能被其他数整除,则跳出循环后i值一定比m小,如果只被m本身整除,则跳出循环后i==m,证明m为素数*/
printf("%3d",m); //满足条件才输出
}
}

3. 用C语言建造一个单链表,输出20以内的素数

你的要求说得不是很清楚,下面提供的这个程序先生成一个存储0~20的单链表,然后剔除其中非素数节点,最后打印出经处理后仅剩素数节点的单链表。#include <stdio.h>
#include <math.h>
#include <malloc.h>
#include <conio.h>
typedef struct node
{
int n;
struct node *Next;
}num;
int is_prime(int num)/*自定义函数:判断是否素数*/
{
int i,sq;
if(num<=1) return 0;
sq=(int)sqrt(num);
for(i=2;i<=sq;i++)
{
if(num%i==0) break;
}
if(i<=sq)
return 0;
else
return 1;
}
main()
{
int i,m=0;
num *h,*p,*s;
if((h=(num *)malloc(sizeof(num)))==NULL) exit(0);/*生成一个存储1~20的单链表*/
h->n=1;/*h:表头,下同*/
h->Next=NULL;
p=h;/*p:当前节点,下同*/
for(i=2;i<=20;i++)
{
if((s=(num *)malloc(sizeof(num)))==NULL) exit(0);
p->Next=s;
s->n=i;
p=s;
}
p=h;
s=p;
for(i=0;i<20;i++) /*遍历链表,剔除非素数节点*/
{
if(is_prime(p->n)==1)
{
s=p;
p=p->Next;
m++;
if(m==1) h=s;
}
else
{
s->Next=p->Next;
p=p->Next;
}
}
p=h;
for(i=1;i<=m;i++)/*打印整理后的单链表*/
{
printf("%d ",p->n);
p=p->Next;
}
getch();
return;
}

4. c语言实现输出1~100内质数,求思路。谢谢!

利用循环,让这个数从2除到开根号——>for(i=2;i<=sqr(m);i++)
然后循环内判断是否能被整除,并用flag做个标记,初值flag=1——>if(m%i==0)flag=0
循环完成,即判断结束,利用标记判断是否是质数,如果是,那么flag应该还是为1——>if(flag)printf……

以上就是判断部分,那么从1~100可以在以上基础上加上外循环for(m=1;m<=100;m++)就实现从1~100依次判断了

5. c语言输出10到20的所有素数,并统计素数的个数

int f(int n){
int i;
for (i=2;i<n;i++) if (n%i==0) return 0;
return 1;}

void main(){
int i,n=0;
for (i=10;i<=20;i++) if (f(i)) {printf("%d\t",i);n++;}
printf("一共 %d 个\n",n);
}

6. C语言题:从键盘输入20个整数,求这20个数的平均值,然后找出其中所有的质数并打印出来, 在线等 急急

求平均数和找质数的c语言代码如下:
#include<stdio.h>
void main()
{
int a[20],n,j;
printf("输入20个整数:")
for(i=0;i<20;i++)
{
scanf("%d",&a[i]);
}
//求平均数
n=0;
for(i=0;i<20;i++)
{
n+=a[i];
}
printf("平均数是:%d\n",n/20);
//找出质数并显示
printf("其中质数是:");
n=0;
for(i=0;i<20;i++)
{
for(j=2;j<a[i];j++)
{
if(a[i]%j==0)
break;
}
if(a[i]==j)
{
//每行3个质数对齐显示
printf("%d\t",a[i]);
n++;
if(n%3==0) printf("\n");
}
}
}
有疑问可以追问,有问必答。

7. C语言求1到n所有质数

按照题目要求编写的程序如下(见图)

8. c语言 输入20个数,找出其中的质数(素数)

void main(){
int a[20]。i。j。k;
for(i=0;i〈=19;i++)scanf(“%d”,&a[i]);
for(i=0;i<=19;i++){k=0;
for(j=2;j<a[i];j++) if(a[i]%j==0) k=1;
if(k==0) printf("%d",a[i]);
};

};

9. C语言 输出1到100之间的全部素数

有三种方法:

1、输出1-100以内的素数:

(9)c语言输出20以内所有质数扩展阅读:

在这个小程序中主要用到的是for循环

for 循环语句的一般形式为:

for (表达式1; 表达式2; 表达式3)

{

语句;

}

需要注意的两点:

1) 表达式1、表达式2和表达式3之间是用分号;隔开的,千万不要写成逗号。

2)for(表达式1;表达式2;表达式3)的后面千万不要加分号,很多新手都会犯这种错误——会情不自禁地在后面加分号。

因为 for 循环只能控制到其后的一条语句,而在C语言中分号也是一个语句——空语句。所以如果在后面加个分号,那么 for 循环就只能控制到这个分号,下面大括号里面的语句就不属于 for 循环了。

10. C语言如何实现质数输出

通过除以小于被除数的所有数
a%d==0 则count‘++;
判断如果count==0,printf(“%d”,a);