【例5-7】利用函数求100以内的全部素数,每行输出10个数。要求定义和调用函数prime(n),判断n是否为素数。
【输入输出样例】
【样例说明】
每个素数按%6d格式输出。
/利用函数求100以内的全部素数,
每行输出10个数。
要求定义和调用函数prime(n),
判断n是否为素数。/
#include
int prime(int n);//函数声明
int main()
{
/*int j,i;
for(j=2;j<=100;j++){
printf("%6d",prime(j));
}*/
int i,result;
int flag=0;//素数个数
for(i=2;i<100;i++){
result=prime(i);//函数调用
if(result==1){//如果是素数
flag++;
if(flag%10==0){//十个一行
printf("\n");
}
else printf("%6d",i);
}
}
return 0;
}
int prime(int n)//函数定义
{
int i;
int result=1;//如果是素数结果为1
if(n>2){
for(i=n-1;i>1;i--){
if(n%i==0){
result=0;break;
}
}
}
return result;
}
#include <stdio.h>
#include <math.h>
int prime(int n)
{
int k,i;
k=sqrt(n);
for(i=2; i<=k; i++) {
if(n%i==0) {
return 0;
}
}
return 1;
}
int main()
{
int m,i,a=0;
int k;
printf("1到100之间所有的素数为:\n");
for(m=2; m<=100; m++)
{
if(prime(m))
{
printf("%6d",m);
a++;
if(a%10==0)
printf("\n");
}
}
}
你的问题是啥?看样子代码逻辑没问题啊!
https://blog.csdn.net/apple_53792700/article/details/127575792?spm=1001.2014.3001.5502
#include <stdio.h>
#include <math.h>
bool prime( int x );
int main(){
// 一个计数变量
int flag = 1;
// m从2开始一直到100
for( int m = 2 ; m <=100 ; m++ ){
//如果m是质素
if( prime(m) ){
// 打印m
printf("%6d",m);
if( flag % 10 == 0 ){
// 如果 flag 除以 10 余数是 0 就打印换行符
printf("\n");
}
// flag = flag + 1;
flag++;
}
}
}
bool prime(int x ){
// 遍历除 1 以外所有比自己小的整数
int sq = sqrt(x);
for( int i = 2 ; i <= sq; i++ ){
if( x%i == 0 ){
// 如果 x 可以被 i 整除 那么就返回的 假 代表这个数不是素数
return false;
} else { /* 如果不能被 i 整除就继续遍历 */ }
}
// 如果除 1 以外所有比自己小的整数都不能被整除,那么他就是素数
if( x <= 1 ){
return false;
} else {
return true;
}
}
$$\color{red}{有帮助的话望采纳}$$