1、 定义函数判断n是否为素数。(40分)
2、调用上面的判断素数函数,输出[100,2001之问的素数。(30
分)
3、调用上面的判断素数函数,统计题【100,200]之间的素数个数。
/*1、 定义函数判断n是否为素数。(40分)/
/**1、 定义函数判断n是否为素数。(40分)*/
#include<stdio.h>
int prime(int x)
{
int i;
if(x==1)
{
return 0;
}
for(i=2;i<x;i++) //这里是“<”而非“<=”.证明了从1到它本身-1都没有其他因数了
{
if(x%i==0)
return 0;
}
return 1;
}
int main() {
int n;
printf("请输入一个数:\n");
scanf("%d",&n);
if(prime(n))
{
printf("%d是素数\n",n);
}else
{
printf("%d不是素数\n",n);
}
return 0;
}
#include<stdio.h>
int prime(int x)
{
int i;
if(x==1)
{
return 0;
}
for(i=2;i<x;i++) //这里是“<”而非“<=”.证明了从1到它本身-1都没有其他因数了
{
if(x%i==0)
return 0;
}
return 1;
}
int main() {
int i;
printf("[100-200]区间的素数如下:\n");
for(i=100;i<200;i++){
if(prime(i))
{
printf("%d ",i);
}
}
return 0;
}
#include<stdio.h>
int prime(int x)
{
int i;
if(x==1)
{
return 0;
}
for(i=2;i<x;i++) //这里是“<”而非“<=”.证明了从1到它本身-1都没有其他因数了
{
if(x%i==0)
return 0;
}
return 1;
}
int main() {
int i,count=0;
for(i=100;i<200;i++){
if(prime(i))
{
count++;
}
}
printf("[100-200]区间的素数个数为:%d\n",count);
return 0;
}
#include <iostream>
#include <stdio.h>
using namespace std;
//判断一个数是否为素数的函数
int isPrime(int num)
{
int i;
if (num == 2)//2为最小素数
return 1;
if (num > 2)
{
for (i = 2; i < num; i++)
if (num % i == 0)
{
break;//一旦判断不是,跳出循环
}
if (i == num)
return 1;
}
return 0;
}
int main()
{
printf("输出100-2001之间的素数:\n");
for (int i = 100; i < 2001; i++)
{
if(isPrime(i))
cout<<i<<endl;
}
int cnt = 0;
for (int j = 100; j < 200; j++)
{
if (isPrime(j))
cnt++;
}
printf("100-200之间的素数个数:%d\n", cnt);
#include <stdio.h>
int is_prime_number(int n)
{
int i;
int result = 1;
if(n==1)
return 0;
for(i=2;i<n;i++)
{
if(n%i==0)
{
result = 0;
break;
}
}
return result;
}
int main()
{
int n;
printf("100以内的素数包括:\n");
for(n=1;n<=100;n++)
{
if(is_prime_number(n))
{
printf("%d ",n);
}
}
printf("\n");
return 0;
}
你可以参照这个例子进行修改,改成100到200之间的,中间加个次数统计
#include<stdio.h>
int Sushu(int a);
int main()
{
int n = 0, res = 0;
int s = 0;
for (n = 100; n < 200; n++)
{
res = Sushu(n);
if (res == 1)
printf("%4d", n);
s++;
}
printf("\n100-200֮之间有%d个素数", s);
system("pause");
return 0;
}
int Sushu(int a)
{
int i = 0;
for (i = 2; i < a; i++)
{
if (a % i == 0)
return 0; //如果不是素数返回0
}
return 1; //如果是素数返回1
}
#include<bits/stdc++.h>
bool aa(int n)//判断质数
{
if(n<2)
{
return 0;
}
else
{
for(int i=2;i*i<=n;i++)
{
if(n%i==0)
{
return 0;
}
}
return 1;
}
}
int ans;//质数个数
int main()
{
for(int i=2;i<=2001;i++)
{
if(aa(i))
{
if(i<=200)
{
ans++;
}
printf("%d ",i);
}
}
printf("\n%d",ans);
return 0;
}
参考代码,自行按需改写。
毕竟学程序语言编写调试程序是正道。
#include<stdio.h>
#include<math.h>
void sushu(int n);
int main()
{
int a;
printf("Pls input a number:");
scanf("%d",&a);
sushu(a);
return 0;
}
void sushu(int n)
{
int i;
for(i=2;i<n;i++)
{
printf("%d %d ",n%i,i);
if(n%i==0)
{
printf("%d 是素数",n);
break;
}
else
{
printf("%d 是素数",n);
}
}
}
如有帮助,望采纳
//判断一个数是否为素数
int isPrime(int num)
{
int i;
if (num == 2)
return num;
if (num > 2)
{
for (i = 2; i < num; i++)
if (num % i == 0)
{
break;//一旦判断不是,跳出循环
}
if (i == num)
return num;
}
}
int main()
{
for (int i = 100; i < 2001; i++)
{
cout<<isPrime(i);
}
int cnt = 0;
for (int j = 100; j < 200; j++)
{
if (isPrime(j))
cnt++;
}
cout << "100-200之间的素数个数" << cnt << endl;
}
#include<stdio.h>
int ss(int a)
{
if (a == 1)
return 0;
else
{
int i;
for (i = 2; i < a; i++)
{
if (a % i == 0)
break;
}
if (i == a)
return 1;
else
return 0;
}
}
int main()
{
int p,sum=0;
for (p = 100; p < 201; p++)
{
if (ss(p))
{
printf("%5d",p);
sum++;
}
}
printf("\n100`200之间的素数为:%d",sum);
return 0;
}
#include <stdio.h>
//判断是否素数
int is_prime_number(int n)
{
int i;
if(n==1)
return 0;
for(i=2;i<n;i++)
{
if(n%i==0)
{
return 0;
}
}
return n;
}
int main()
{
int n;
printf("100~200素数包括:\n");
for(n=100;n<=200;n++)
{
if(is_prime_number(n))
{
printf("%d ",n);
}
}
printf("\n");
printf("100~200素数个数:");
int count=0;
for(n=100;n<=200;n++)
{
if(is_prime_number(n))
{
count+=1;
}
}
printf("%d\n",count);
return 0;
}
//特征法,直接调用TE_zheng函数即可;
#include<bits/stdc++.h>
using namespace std;
int is_SU_SHU(int num){//非遍历
if (num<=1){
cout<<"非法参数:1和非正整数既不是质数,也不是素数"<<"\n";
}
if (num==2||num==3||num==5){
return true; //小于6的数中所有的素数 ;
}
if (num==4){
return false;//小于6的数中所有的非素数 ;
}
// 过滤掉 2/3
if (num%6==0||num%6==2||num%6==3||num%6==4){
return false;//大于6的所有正数中,满足6i+0, 6i+2, 6i+3, 6i+4特征的数为非素数;
}
//6i+1,6i+5部分同时包涵素数和非素数
//6i+1:115 23 5 121 11 11 133 19 7 145 5 29 169 13 13 175 25 7 187 17 11
//6i+5:119 125 143 155 161 185
//过滤掉5的倍数和平方数
if(num%5==0||pow(sqrt(num),2)==num){
return false;
}
//剩下的数值遍历验证;
for (int j =2;j<=sqrt(num); j++){
if(num%j==0){
return false;
}
}
return true;
}
int TE_zheng(int a,int b){
cout << "输出"<<a<<"-"<<b<<"之间的素数:" << endl;
for (int i = a; i < b+1; i++)
{
if(is_SU_SHU(i))
cout<<i<<"\n";
}
int cnt = 0;
for (int j = a; j < b+1; j++)
{
if (is_SU_SHU(j))
cnt++;
}
cout << "输出"<<a<<"-"<<b<<"之间的素数的个数:" <<cnt<< endl;
}
int main()
{
TE_zheng(100,200);
}