c语言1000以内素数
A. c语言求1000以内素数
你程序的问题出现在
while(num2<num1)
{
num2=2;
num=num1%num2;
num2++;
a=isPrime(num);
if(a==1)
printf("%5d",num1);
}
假设num1=4的时候,你没次进循环num2=2,num2++,num2=3;再次进循环num2=2,num2++,num2=3;因此一直有num2<num1成立,这就进入了死循环。这个程序不难写,如果你需要写出程序,hi我。
B. c语言编写程序,输出1000内的所有素数, 每行显示10个数
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
/*****************************************************************
*本程序用来计算1000内质数有哪些及一共有哪些。
*
*知识点:什么是质数?及只能被本身和1整除的整数。
*
*时间:2018.10.22
*****************************************************************/
int main(void)
{
int i,j,result = 0,sum = 0; //i-循环变量和被判断数 j-循环变量和判断数 result-验证是否为质数的返回值 sum-质数总量计数
for (i = 2;i <= 1000;i++) //第一个循环用来取出被判断数 从2开始到1000
{
for (j = 2; j <= sqrt(i) + 1;j++) //第二个循环是用来判断这个数是否为质数并返回,从2开始至被判断数开根后+1. sqrt(i)后面不+1 会把质数2 3丢掉
{
if (i%j == 0 && i != j) //如果被判断数用2-被判断数来取余,如果余数为0 且不是被自已整除那么这个数一定不是质量直接返回
{
result = 0; //判断出是质数后返回前必须给返回值赋0值,0代表非质数 1代表质数
break;
}
result = 1;
}
if (result == 1) //如果此数为质数 质数总量+1后并打印 把result返回值初始化准备下一个循环判断。
{
sum++;
printf("第%d个质数:%d \n",sum,i);
result = 0;
}
}
return 0;
}
C. 编写函数,求1000以内的所有素数
#include<stdio.h>
#defineMAX1000
intisPrime(intn){/*判断素数函数*/
inti;
intflag=1;
for(i=2;i<n;i++)/*从2循环至自身,如果能被其间任一数整除,则循环结束,其为非素数*/
if(n%i==0){
flag=0;
break;
}
returnflag;
}
intmain(void){
inti;
printf("1000以内的所有素数: ");
for(i=2;i<MAX;i++){/*1不是素数,所以从2开始*/
if(isPrime(i))
printf("%d ",i);
}
putchar(' ');
return0;
}
执行结果
D. c语言:输出1000以内所有的素数,并统计素数的个数,要求每行输出8个数。
//输出1000以内的素数,统计素数的个数,要求每行输出8个数
#include<stdio.h>
intmain()
{
inti;
intcount=0;//记录共有多少素数
intcount1=0;//每8个素数就打一个回车
intsushu(inti);//判定素数的函数
for(i=2;i<1000;i++)//取2到999之间的素数
{
if(sushu(i))
{
count++;
count1++;
printf("%4d",i);
}
if(count1==8)//每8个素数打一个回车
{
printf(" ");
count1=0;
}
}
printf("共有%2d个素数",count);
}
intsushu(intn)//这是判断一个数n是否是素数的函数
{
inti;
for(i=2;i<n;i++)
if(n%i==0)
return0;
return1;
}
附有简单的注释,望采纳
E. 怎么用C语言求一千以内的素数
#include<stdio.h>
int main(void)
{
int x;
int y;
int count=0;
for(x=1;x<1000;x++)
{
y=x;
if(y>1)
{
while(y>=1)
{
if(x%y==0)
count++;
y--;
}
if(y==0&&count==2)
{
printf("%d\n",x);
}
count=0;
}
else printf("1\n");
}
return 0;
}
F. c语言求1000以内的素数(素数是只能被1和它本身整除的数)
//这个比较灵活,可以按你的需要输入N的值,求出N以内的所有素数//
#include<stdio.h>
#include<math.h>
void main()
{
int temp,k;
int N=0,n;
printf("Input Call:\n");
scanf("%d",&N);
printf("%d以内的素数有",N);
getchar();
if(N<=1)printf("Wrong!!!");
else
{
for(n=2;n<=N;n++)
{
temp = 0;
for(k=2;k<=sqrt(n)+1;k++)
{
if(n%k==0)
{
k=n;
temp=1;
}
}
if(temp==0)
{
printf("%d ",n);
}
}
}
printf("\n");
}
G. 用基础c语言,输出1000以内的所有素数,每行输出5个,怎么写
for(i=0;i<1000;i++)
{
if( 判断是否素数(i) == true)
{
printf("%4d\t",i);
j++;
if(j==5)
{
printf("\n");
j=0;
}
}
}
H. 用C语言输出1000以内的全部素数
如下图所示:
I. 用c语言求1000以内的素数(素数是只能被1和它本身整除的数)
int i,j,k;
for(i=2;i<=1000;i++)
{
k=0;
for(j=2;j<i;j++)
{
if(i%j==0)
{
k=1;
break;
}
}
if(k=0)
printf("%d",i);
}
主体这样,前缀什么的自己加上就好了。
J. 编写一个程序,输出1~1000之内所有的素数(注意:素数即质数)及个数(C语言)
源代码如下:
#include <stdio.h>
#include <math.h>
void main()
{
int n=0, i, j,w,k;
for(i=2;i<=1000; i++)
{
w=1;
k=sqrt(i);
for (j=2; j<=k; j++)
if (i%j==0) {w=0;break;}
if (w) {
++n;
if (n%10==0) printf("%d ",i);
else printf("%d ",i);
}
(10)c语言1000以内素数扩展阅读
1、素数使用for循环查找2-1000以内的所有素数,循环次数为999次,在for循环中添加一个移位寄存器用以存储所有的素数,其初始值为一个空数组。
2、在循环内部逐个数判断是否为素数,若是素数,则使用"数组插入.vi"函数添加到移位寄存器的数组中,否则,移位寄存器中的值保留为上次的值。