c语言输出质数
‘壹’ c语言程序输出1000以内的质数,要求10个数一行
#include<stdio.h>
int main()
{
int k=0,f=0;
for(int i=2;i<=1000;i++)
{
f=0;//置0,用于标记下一个非质数
for(int j=2;j<i;j++)
{
if(i%j==0)//,i能被2~i的一个数j整除,就说明 i不是质数
{
f=1;//标记,不是质数
break;
}
}
if(f==0)//未被标记,是质数
{
k++;//计数
if(k%10==0)//质数的个数是10的倍数,换行
printf("%4d ",i);
else
printf("%4d",i);
}
}
return 0;
}
‘贰’ C语言计算质数
#include<stdio.h>
staticcharm[8000000];
staticintprime[500000];
#defineMAX_N7368787
voidset(void)
{
inti,j;
for(i=2;i<=MAX_N;i++)
{
if(m[i]==1)continue;
for(j=i+i;j<=MAX_N;j+=i)
m[j]=1;
}
for(i=j=0;i<=MAX_N;i++)
if(m[i]==0)prime[j++]=i;
}
intmain()
{
intm,n,;
while(~scanf("%d%d",&m,&n))
{
for(i=m;i<=n;i++)
{
printf("%d",prime[i-1]);
if(i==n||(i-m)%10==9)putchar(' ');
elseputchar('');
}
}
return0;
}
‘叁’ c语言题目 以每行8个的形式输出100-999内的质数
#include <stdio.h>
#include <math.h>
int isPrime(int n) {
if (n==2 || n==3) return 1;
for (int i=2;i<=sqrt(n);i++) {
if (n%i==0) return 0;
}
return 1;
}
int main() {
int i,j=0;
for (i=100;i<1000;i++) {
if (isPrime(i)) {
printf("%4d", i);
if (++j==8) {
j = 0; printf("\n");
}
}
}
}
‘肆’ C语言。。输入一个正整数,输出它的所有质数的因子(如180的质数因子为2,2,3,3,5)
int prime(int x)
{
int i;
for (i = 2; i <= x / 2; i++)
if (x%i == 0)
return 0;
return 1;
}
‘伍’ 用C语言打出质数
楼上的程序运行结果有问题哦。。。
--------------------------------
1.
#include<stdio.h>
main()
{
int i, j, M, N;
int flag; //标志是否为质数
printf("input m:");
scanf("%d", &M);
printf("input n:");
scanf("%d", &N); //输入M和N
if(M<2)
{
M=2;
printf("2\n");
}//小于2的数不为质数,直接从3数起,并且把质数2打印出来
for(i=M+1;i<=N;i++)//从M到N一个个的数数
{
flag=0; //初始化,为质数
for (int j=2;j<=i/2;j++) //从除以2开始,一直除以到i/2,(不用除到i了,判断9/7能不能整除没意义,肯定不行的)
{
if (!(i %j) ) //如果整除(%为取余数)
{
flag=1; //制标志为1(不为质数)
break; //跳到M到N的下一个数
}
}
if (flag==0) printf("%d\n",i); //如果从除以2开始,一直除以到i/2都不能整除,则为质数,打印出来。
}
}
------------------------
VC6.0调试输出
input m:3
input n:20
5
7
11
13
17
19
2
#include<stdio.h>
int main()
{
int i, j, M, N;
int flag;
printf("input m:");
scanf("%d", &M);
if(M<2)
{
M=2;
printf("2\n");
return 0;
}//小于2的数不为质数,直接从3数起,并且把质数2打印出来,退出
for(i=M+1;;i++)//从M到N一个个的数数
{
flag=0; //初始化,为质数
for (j=2;j<=i/2;j++) //从除以2开始,一直除以到i/2,(不用除到i了,判断9/7能不能整除没意义,肯定不行的)
{
if (!(i %j) ) //如果整除(%为取余数)
{
flag=1; //制标志为1(不为质数)
break; //跳到M到N的下一个数
}
}
if (flag==0) printf("%d\n",i);
return 0;//如果从除以2开始,一直除以到i/2都不能整除,则为质数,打印出来。
}
return 0;
}
---------------------------
VC6.0调试输出
input m:8
11
‘陆’ C语言 输出1到100之间的全部素数
有三种方法:
1、输出1-100以内的素数:
(6)c语言输出质数扩展阅读:
在这个小程序中主要用到的是for循环
for 循环语句的一般形式为:
for (表达式1; 表达式2; 表达式3)
{
语句;
}
需要注意的两点:
1) 表达式1、表达式2和表达式3之间是用分号;隔开的,千万不要写成逗号。
2)for(表达式1;表达式2;表达式3)的后面千万不要加分号,很多新手都会犯这种错误——会情不自禁地在后面加分号。
因为 for 循环只能控制到其后的一条语句,而在C语言中分号也是一个语句——空语句。所以如果在后面加个分号,那么 for 循环就只能控制到这个分号,下面大括号里面的语句就不属于 for 循环了。
‘柒’ 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依次判断了
‘捌’ 输出100以内的质数,用c语言编写
#include <stdio.h>
int main(int argc, char **argv)
{
int x;
for (x=1;x<100;x++){
int i;
int isprime=1;//表示x是素数。
for(i=2;i<x;i++){
if (x%i==0){
isprime=0;
break;
}
}
if (isprime==1){
printf("%d",x);
}
}
return 0;
}
C语言编程计算注意事项:
1、编程时注意符号大小写。
2、main函数要有返回值
3、C语言中定义数组,要定义出大小,数组的大小只能是常量不能是变量。
4、%md ; %0md ;%.mf;(以m位进行右对齐输出,不足m位空格补上;以m位进行右对齐输出。不足m位用0补上;保留m位小数)
‘玖’ C语言如何实现质数输出
通过除以小于被除数的所有数
a%d==0 则count‘++;
判断如果count==0,printf(“%d”,a);