1. c语言编程。。孪生素数
楼主的两个for循环用的不对,另外整个流程也是有问题的。改正的代码如下:
#include<stdio.h>
#include<math.h>
intmain()
{
inta,b;/*输入的两个数据范围*/
inti,j,k;
intnum=0,s;/*素数个数,素数标志*/
scanf("%d%d",&a,&b);
for(i=a;i+2<=b;i++)
{
s=1;/*先假设i是素数*/
k=sqrt(i);
for(j=2;j<=k;j++)
{
if(i%j==0)
{
s=0;/*i不是素数*/
break;
}
}
if(s)
{
k=sqrt(i+2);
for(j=2;j<=k;j++)
{
if((i+2)%j==0)
{
s=0;/*i+2不是素数*/
break;
}
}
if(s)
{
++num;/*i+2是素数*/
printf("第%d个孪生素数[%d,%d] ",num,i,i+2);
}
}
}
return0;
}
二、用GCC编译测试结果:
2. 孪生素数(C语言)
#include<stdio.h>
int isZhiShu(int m)
{
for(int i=2;i<=m/2;i++)
if(m%i==0)
{
return 0;
break;
}
return 1;
}
int main()
{
int n,i,a=0,b=0;
printf("please input a num");
scanf("%d",&n);
for(i=n;i>1;i--)
if(isZhiShu(i)==1)
{
a=b;
b=i;
if(a-b==2)
{
printf("the number is %d and %d",b,a);
break;
}
}
}
3. c语言孪生素数,输入一个数,输出小于那个数的最大孪生素数,用函数。
看代码:
#include<stdio.h>
#include<math.h>
//判断是否是素数,是返回1,不是返回0
intis_prime(intn)
{
inti,tmp=(int)sqrt(n);
for(i=2;i<=tmp;++i)
{
if(n%i==0)
{
return0;
}
}
return1;
}
intmain()
{
inti,n;
printf("请输入一个数:");
scanf("%d",&n);
for(i=n-1;i-2>=2;--i)//小于n,所以让i从n-1开始
{
if(is_prime(i)&&is_prime(i-2))
{
printf("小于%d的最大孪生素数为:%d和%d ",n,i,i-2);
break;
}
}
return0;
}
运行:
4. c语言 求100~200间的孪生素数,请帮忙看下哪里错了,谢谢。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
main()
{
int i,j,n=0;
for(i=99;i<=199;i+=2)
{ /少一对大括号 你写的格式不太好Y
n=n+1;
{
for(j=99;j<=i-1;j++)
if(i%j==!0)
if((i-2)%(j-2)==!0)
printf("第%d组孪生素数:%d与%d\n",n,i,i+2);
else break;
}
}
getchar() ;
}
5. 输出m对(m由键盘输入)孪生素数孪生素数是指两个相差为2的素数例如3和5,5和7,11和13等
按照你的要求编写的求孪生素数的C语言程序如下
#include<stdio.h>
int isprime(int n){
int i;
for(i=2;i<n;i++){
if(n%i==0){
break;
}
}
if(i==n){
return 1;
}else{
return 0;
}
}
int main(){
int m,count=1,i=2;
scanf("%d",&m);
while(count<=m){
if(isprime(i)==1 && isprime(i+2)==1){
printf("%d %d ",i,i+2);
count++;
}
i++;
}
return 0;
}
6. C语言题目:【函数】自定义素数函数,求孪生素数
#include<stdio.h>
int isprime(int n)
{int i;
for(i=2;i*i<=n;i++)
if(n%i==0)return 0;
return n>1;
}
int main()
{ int n,i;
scanf("%d",&n); //求n以内的孪生素数
for(i=3;i<n-1;i+=2)
if(isprime(i)&&isprime(i+2))
printf("%d----%d\n",i,i+2);
return 0;
}
7. C语言输出n以内的孪生素数
按照你的要求编写的输出n以内的孪生素数的C语言程序如下
#include<stdio.h>
intisPrime(intn){
inti;
for(i=2;i<n;i++)
{
if(n%i==0)return0;
}
return1;
}
intmain(){
inti,n;
printf("请输入一个正整数:");
scanf("%d",&n);
for(i=2;i<=n;i++){
if(isPrime(i)==1&&isPrime(i+2)==1){
printf("%d和%d是孪生素数 ",i,i+2);
}
}
return0;
}
8. C语言编程求出2000以内的所有的孪生素数
看代码:
#include<stdio.h>
#include<math.h>
//判断是否是素数,是返回1,不是返回0
intis_prime(intn)
{
inti,tmp=(int)sqrt(n);
for(i=2;i<=tmp;++i)
{
if(n%i==0)
{
return0;
}
}
return1;
}
intmain()
{
inti;
for(i=2;i+2<2000;++i)
{
if(is_prime(i)&&is_prime(i+2))
{
printf("%d%d ",i,i+2);
}
}
return0;
}
9. C语言问题:孪生素数(rsss)
#include<stdio.h>
#include<math.h>
intSuSho(intx)
{
inti;
for(i=2;i<=sqrt(x);i++)
{
if(x%i==0)
return0;
}
if(x==2||x==3||i==(int)(sqrt(x)+1))
return1;
}
intmain()
{
inti,j,sum=0;
scanf("%d",&j);
for(i=2;i<j-2;i++)
{
if(SuSho(i)==1&&SuSho(i+2)==1||SuSho(i)==1&&SuSho(i+1)==1)
sum++;
}
printf("%d ",sum);
return0;
}
10. 孪生素数(C语言)
#include<stdion.h>
bool Issushu(int a){
int i = 2;
for(i = 2;i <= a/2;i++){
if(a%i == 0)
return false;
}
return true;
}
int main(){
int m = 0;
scanf("%d",&m);
if(m%2)
m--;
for(;m>2;m-=2){
if(Issushu(m)&&Issushu(m-2)){
printf("%d",m);
return 0;
}
printf("不存在");
return 0;
}