问题描述:输出10到50之间的全部素数
输入形式:无
输出形式:各素数之间用一个空格隔开
样例输入:无
样例输出:11 13 17 19 23
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
bool isPrime(int n)
{
int i;
if (n == 1)
{
return false;
}
for ( i = 2; i <= n; i++)
{
if (n % i == 0)
{
break;
}
}
if (i == n)
{
return true;
}
else
return false;
}
int main(void)
{
printf("10到50之间的全部素数为:\n");
for (int i = 10; i <= 50; i++)
{
if (isPrime(i))
{
printf("%5d", i);
}
}
}
#include<stdio.h>
#include<math.h>
int main()
{
int n;
int i;
int flag=0;
for(n=10;n<=50;n++)
{
flag=0;
for(i=2;i<=sqrt(n);i++)
{
if(n%i==0)
{
flag=1;
break;
}
}
if(flag==0)
printf("%d ",n);
}
return 0;
}
循环到开方n或者n/2都可以 反正不要写到n
望采纳
#include <stdio.h>
#include <math.h>
int main(){
int i=11,j,counter=0;
for(;i<=50;i+=2){ //外层循环为内层循环提供一个奇数
for(j=2;j<=i-1;j++){ //内存循环判断奇数是否为素数
if(i%j==0){ //若i不是素数则强行结束内存循环,若i是素数则输出,计数器+1
break;
}
}
if(j>=i){
printf("%6d",i);
counter++;
if(counter%10==0){
printf("\n"); // 每输出10个素数,则换一行
}
}
}
}