按灯泡
来源:互联网 发布:离线数据大魔王 编辑:程序博客网 时间:2024/06/10 04:12
#include <iostream>
using namespace std;
int prime[1000030],isprime[100020],num[1000004];
int main()
{
int temp=0,t,n,num1,num2,max,min,index,sum;
for(int i=1;i<=1000000;i++)
prime[i]=1;
for(int i=2;i<=1000;i++)
if(prime[i])
for(int j=2;j<=1000000;j++)
prime[i]=0;
for(int j=2;j<=1000000;j++)
if(prime[j]) isprime[temp++]=j;
cin>>t;
while(t--)
{
cin>>n;
for(int i=1;i<=n;i++)
num[i]=1;
while(cin>>num1>>num2&&(num1||num2))
{
max=num1>num2?num1:num2;
min=num1<num2?num1:num2;
for(int i=0;i<temp&&isprime[i]<=min;i++)
if(min%isprime[i]==0&&max%isprime[i]==0)
{
index=isprime[i];
for(int j=index;j<=n;j+=index)
if(num[j]) num[j]=1;
else num[j]=0;
}
}
sum=0;
for(int i=1;i<=n;i++)
sum+=num[i];
cout<<sum<<endl;
}
//cout << "Hello world!" << endl;
return 0;
}
using namespace std;
int prime[1000030],isprime[100020],num[1000004];
int main()
{
int temp=0,t,n,num1,num2,max,min,index,sum;
for(int i=1;i<=1000000;i++)
prime[i]=1;
for(int i=2;i<=1000;i++)
if(prime[i])
for(int j=2;j<=1000000;j++)
prime[i]=0;
for(int j=2;j<=1000000;j++)
if(prime[j]) isprime[temp++]=j;
cin>>t;
while(t--)
{
cin>>n;
for(int i=1;i<=n;i++)
num[i]=1;
while(cin>>num1>>num2&&(num1||num2))
{
max=num1>num2?num1:num2;
min=num1<num2?num1:num2;
for(int i=0;i<temp&&isprime[i]<=min;i++)
if(min%isprime[i]==0&&max%isprime[i]==0)
{
index=isprime[i];
for(int j=index;j<=n;j+=index)
if(num[j]) num[j]=1;
else num[j]=0;
}
}
sum=0;
for(int i=1;i<=n;i++)
sum+=num[i];
cout<<sum<<endl;
}
//cout << "Hello world!" << endl;
return 0;
}
0 0
- 按灯泡
- 按灯泡问题
- 灯泡
- UHP 灯泡
- UHE灯泡
- 灯泡开关
- 灯泡开关
- 蓝牙灯泡
- 灯泡开关
- 意大利灯泡
- 灯泡的故事
- 投影机灯泡常识
- 开关和灯泡问题
- 百度:100个灯泡
- 灯泡,PC 与 云
- arduino蓝牙控制灯泡
- 华为灯泡问题
- 灯泡排列题
- 通过跳板机自动登录服务器脚本
- 编程习惯
- Linux/Centos环境安装配置Swftools pdf转swf 及java代码转化
- java学习笔记--易忽视的情况 (1)
- ifdef和endif的理解
- 按灯泡
- C++的cin/cout高阶格式化操作
- Android控件抖动效果
- 快速排序(Java描述)
- Matlab7.0安装之后Runtime Error警告解决办法
- 待更新·优化问题求解算法实现方法·Java版
- 4.4Bootstrap学习js插件篇之滚动监听
- 静态方法的体悟
- 黑马程序员_C#中几种比较字符串的方法比较