#include<stdio.h>
#include<stdlib.h>
int main( )
{
int x,y,t,a,b,ans,flag,i,j;
scanf ( "%d" ,& t) ;
// READ THE COMMENT IN THE LOOP AND COME BACK HERE
// I HAVE JUST TAKEN THIS FROM MY CODE
//YOU CAN DO IT MANUALLY
//IT IS BETTER THAT YOU DO IT YOURSELF
long long int arr[ 10000 ] = { 2 ,3 ,5 ,7 ,11 ,13 ,17 ,19 ,23 ,29 ,31 ,37 ,41 ,43 ,47 ,53 ,59 ,61 ,67 ,71 ,73 ,79 ,83 ,89 ,97 ,101 ,103 ,107 ,109 ,113 ,127 ,131 ,137 ,139 ,149 ,151 ,157 ,163 ,167 ,173 ,179 ,181 ,191 ,193 ,197 ,199 ,211 ,223 ,227 ,229 ,233 ,239 ,241 ,251 ,257 ,263 ,269 ,271 ,277 ,281 ,283 ,293 ,307 ,311 ,313 ,317 ,331 ,337 ,347 ,349 ,353 ,359 ,367 ,373 ,379 ,383 ,389 ,397 ,401 ,409 ,419 ,421 ,431 ,433 ,439 ,443 ,449 ,457 ,461 ,463 ,467 ,479 ,487 ,491 ,499 ,503 ,509 ,521 ,523 ,541 ,547 ,557 ,563 ,569 ,571 ,577 ,587 ,593 ,599 ,601 ,607 ,613 ,617 ,619 ,631 ,641 ,643 ,647 ,653 ,659 ,661 ,673 ,677 ,683 ,691 ,701 ,709 ,719 ,727 ,733 ,739 ,743 ,751 ,757 ,761 ,769 ,773 ,787 ,797 ,809 ,811 ,821 ,823 ,827 ,829 ,839 ,853 ,857 ,859 ,863 ,877 ,881 ,883 ,887 ,907 ,911 ,919 ,929 ,937 ,941 ,947 ,953 ,967 ,971 ,977 ,983 ,991 ,997 ,1009 ,1013 ,1019 ,1021 ,1031 ,1033 ,1039 ,1049 ,1051 ,1061 ,1063 ,1069 ,1087 ,1091 ,1093 ,1097 ,1103 ,1109 ,1117 ,1123 ,1129 ,1151 ,1153 ,1163 ,1171 ,1181 ,1187 ,1193 ,1201 ,1213 ,1217 ,1223 ,1229 ,1231 ,1237 ,1249 ,1259 ,1277 ,1279 ,1283 ,1289 ,1291 ,1297 ,1301 ,1303 ,1307 ,1319 ,1321 ,1327 ,1361 ,1367 ,1373 ,1381 ,1399 ,1409 ,1423 ,1427 ,1429 ,1433 ,1439 ,1447 ,1451 ,1453 ,1459 ,1471 ,1481 ,1483 ,1487 ,1489 ,1493 ,1499 ,1511 ,1523 ,1531 ,1543 ,1549 ,1553 ,1559 ,1567 ,1571 ,1579 ,1583 ,1597 ,1601 ,1607 ,1609 ,1613 ,1619 ,1621 ,1627 ,1637 ,1657 ,1663 ,1667 ,1669 ,1693 ,1697 ,1699 ,1709 ,1721 ,1723 ,1733 ,1741 ,1747 ,1753 ,1759 ,1777 ,1783 ,1787 ,1789 ,1801 ,1811 ,1823 ,1831 ,1847 ,1861 ,1867 ,1871 ,1873 ,1877 ,1879 ,1889 ,1901 ,1907 ,1913 ,1931 ,1933 ,1949 ,1951 ,1973 ,1979 ,1987 ,1993 ,1997 ,1999 ,2003 } ;
int sum= 0 ;
while ( t-- )
{
sum= 0 ;
scanf ( "%d %d" ,& x,& y) ;
// I AM MAKING SOME DIFFERENCES IN YOUR CODE. I AM SURE YOU WILL UNDERSTAND IT :)
// THE MAIN LOGIC OF THE QUESTION IS THAT WE HAVE TO FIND THE FIRST PRIME NUMBER AFTER THE SUM (X+Y) AND PRINT THE DIFF BETWEEN (FIRST PRIME AFTER X+Y)-(X+Y)
// WE CAN DO IT IN 2 WAYS-> WE CAN FIND THE NEXT PRIME IN TEST CASE THAT IS AFTER ACCEPTING X AND Y.
// SECOND WAY IS -> WE CAN PRECOMPUTE THE PRIMES NUMBERS AND STORE IN AN ARRAY. THIS WILL BE MORE EFFICIENT AS THE RUNNING TIME IS CONCERNED.
// I EXPECT THAT YOU KNOW HOW TO FIND WHETHER A NUMBER IS PRIME OR NOT?
// IF THEN PUT A LOOP FROM 1-5000 AND STORE ALL THE NUMBERS WHICH ARE PRIME IN AN ARRAY.
// I AM TAKING THE LIMIT AS 5000 BECAUSE THE CONSTRAINTS GIVEN IN THE PROBELEM IS "X AND Y"<=1000. IF THEN THE TOTAL SUM WILL NOT EXCEED 2000. SO WE NEED TO CALCULATE ONLY PRIMES UPTO THE NEXT PRIME NUMBER AFTER 2000
// YOU HAVE TO PRE-COMPUTE THE PRIMES OUTSIDE THE WHILE LOOP-ELSE THAT WILL BE A WASTE. YOU WILL BE PRE-COMPUTING EACH TIME.
// SUPPOSE YOU KNOW HOW TO FIND ALL THE PRIME NUMBERS BEWTEEN THE ABOVE RANGE AND MOVING TO THE NEXT STEP
//MAKE A LINEAR SEARCH IN THE ARRAY SUCH THAT FIND THE FIRST NUMBER THAT IS GREATER THAN X+Y.
//BREAK THE LOOP AND PRINT THE DIFFERENCE BETWEEN THAT NUMBER AND X+Y. YOUR ANSWER WILL BE ACCEPTED :)
int sum= x+ y;
for ( int i= 0 ; i< sizeof ( arr) / arr[ 0 ] ; i++ )
{
if ( arr[ i] > sum)
{
ans= arr[ i] - sum;
break ;
}
}
printf ( "%d\n " ,ans) ;
}
return 0 ;
}
I2luY2x1ZGU8c3RkaW8uaD4KI2luY2x1ZGU8c3RkbGliLmg+CiAKaW50IG1haW4oKQp7CiAgICBpbnQgeCx5LHQsYSxiLGFucyxmbGFnLGksajsKICAgIHNjYW5mKCIlZCIsJnQpOwogICAgLy8gUkVBRCBUSEUgQ09NTUVOVCBJTiBUSEUgTE9PUCBBTkQgQ09NRSBCQUNLIEhFUkUKICAgIC8vIEkgSEFWRSBKVVNUIFRBS0VOIFRISVMgRlJPTSBNWSBDT0RFCiAgICAvL1lPVSBDQU4gRE8gSVQgTUFOVUFMTFkKICAgIC8vSVQgSVMgQkVUVEVSIFRIQVQgWU9VIERPIElUIFlPVVJTRUxGCiAgICBsb25nIGxvbmcgaW50IGFyclsxMDAwMF09ezIsMyw1LDcsMTEsMTMsMTcsMTksMjMsMjksMzEsMzcsNDEsNDMsNDcsNTMsNTksNjEsNjcsNzEsNzMsNzksODMsODksOTcsMTAxLDEwMywxMDcsMTA5LDExMywxMjcsMTMxLDEzNywxMzksMTQ5LDE1MSwxNTcsMTYzLDE2NywxNzMsMTc5LDE4MSwxOTEsMTkzLDE5NywxOTksMjExLDIyMywyMjcsMjI5LDIzMywyMzksMjQxLDI1MSwyNTcsMjYzLDI2OSwyNzEsMjc3LDI4MSwyODMsMjkzLDMwNywzMTEsMzEzLDMxNywzMzEsMzM3LDM0NywzNDksMzUzLDM1OSwzNjcsMzczLDM3OSwzODMsMzg5LDM5Nyw0MDEsNDA5LDQxOSw0MjEsNDMxLDQzMyw0MzksNDQzLDQ0OSw0NTcsNDYxLDQ2Myw0NjcsNDc5LDQ4Nyw0OTEsNDk5LDUwMyw1MDksNTIxLDUyMyw1NDEsNTQ3LDU1Nyw1NjMsNTY5LDU3MSw1NzcsNTg3LDU5Myw1OTksNjAxLDYwNyw2MTMsNjE3LDYxOSw2MzEsNjQxLDY0Myw2NDcsNjUzLDY1OSw2NjEsNjczLDY3Nyw2ODMsNjkxLDcwMSw3MDksNzE5LDcyNyw3MzMsNzM5LDc0Myw3NTEsNzU3LDc2MSw3NjksNzczLDc4Nyw3OTcsODA5LDgxMSw4MjEsODIzLDgyNyw4MjksODM5LDg1Myw4NTcsODU5LDg2Myw4NzcsODgxLDg4Myw4ODcsOTA3LDkxMSw5MTksOTI5LDkzNyw5NDEsOTQ3LDk1Myw5NjcsOTcxLDk3Nyw5ODMsOTkxLDk5NywxMDA5LDEwMTMsMTAxOSwxMDIxLDEwMzEsMTAzMywxMDM5LDEwNDksMTA1MSwxMDYxLDEwNjMsMTA2OSwxMDg3LDEwOTEsMTA5MywxMDk3LDExMDMsMTEwOSwxMTE3LDExMjMsMTEyOSwxMTUxLDExNTMsMTE2MywxMTcxLDExODEsMTE4NywxMTkzLDEyMDEsMTIxMywxMjE3LDEyMjMsMTIyOSwxMjMxLDEyMzcsMTI0OSwxMjU5LDEyNzcsMTI3OSwxMjgzLDEyODksMTI5MSwxMjk3LDEzMDEsMTMwMywxMzA3LDEzMTksMTMyMSwxMzI3LDEzNjEsMTM2NywxMzczLDEzODEsMTM5OSwxNDA5LDE0MjMsMTQyNywxNDI5LDE0MzMsMTQzOSwxNDQ3LDE0NTEsMTQ1MywxNDU5LDE0NzEsMTQ4MSwxNDgzLDE0ODcsMTQ4OSwxNDkzLDE0OTksMTUxMSwxNTIzLDE1MzEsMTU0MywxNTQ5LDE1NTMsMTU1OSwxNTY3LDE1NzEsMTU3OSwxNTgzLDE1OTcsMTYwMSwxNjA3LDE2MDksMTYxMywxNjE5LDE2MjEsMTYyNywxNjM3LDE2NTcsMTY2MywxNjY3LDE2NjksMTY5MywxNjk3LDE2OTksMTcwOSwxNzIxLDE3MjMsMTczMywxNzQxLDE3NDcsMTc1MywxNzU5LDE3NzcsMTc4MywxNzg3LDE3ODksMTgwMSwxODExLDE4MjMsMTgzMSwxODQ3LDE4NjEsMTg2NywxODcxLDE4NzMsMTg3NywxODc5LDE4ODksMTkwMSwxOTA3LDE5MTMsMTkzMSwxOTMzLDE5NDksMTk1MSwxOTczLDE5NzksMTk4NywxOTkzLDE5OTcsMTk5OSwyMDAzfTsKICAgICBpbnQgc3VtPTA7CiAgICB3aGlsZSh0LS0pCiAgICB7CgkJc3VtPTA7CiAgICAgICAgc2NhbmYoIiVkICVkIiwmeCwmeSk7CiAgICAgICAgLy8gSSBBTSBNQUtJTkcgU09NRSBESUZGRVJFTkNFUyBJTiBZT1VSIENPREUuIEkgQU0gU1VSRSBZT1UgV0lMTCBVTkRFUlNUQU5EIElUIDopCiAgICAgICAgLy8gVEhFIE1BSU4gTE9HSUMgT0YgVEhFIFFVRVNUSU9OIElTIFRIQVQgV0UgSEFWRSBUTyBGSU5EIFRIRSBGSVJTVCBQUklNRSBOVU1CRVIgQUZURVIgVEhFIFNVTSAoWCtZKSBBTkQgUFJJTlQgVEhFIERJRkYgQkVUV0VFTiAoRklSU1QgUFJJTUUgQUZURVIgWCtZKS0oWCtZKQogICAgICAgIC8vIFdFIENBTiBETyBJVCBJTiAyIFdBWVMtPiBXRSBDQU4gRklORCBUSEUgTkVYVCBQUklNRSBJTiBURVNUIENBU0UgVEhBVCBJUyBBRlRFUiBBQ0NFUFRJTkcgWCBBTkQgWS4KICAgICAgICAvLyBTRUNPTkQgV0FZIElTIC0+IFdFIENBTiBQUkVDT01QVVRFIFRIRSBQUklNRVMgTlVNQkVSUyBBTkQgU1RPUkUgSU4gQU4gQVJSQVkuIFRISVMgV0lMTCBCRSBNT1JFIEVGRklDSUVOVCBBUyBUSEUgUlVOTklORyBUSU1FIElTIENPTkNFUk5FRC4KICAgICAgICAvLyBJIEVYUEVDVCBUSEFUIFlPVSBLTk9XIEhPVyBUTyBGSU5EIFdIRVRIRVIgQSBOVU1CRVIgSVMgUFJJTUUgT1IgTk9UPwogICAgICAgIC8vIElGIFRIRU4gUFVUIEEgTE9PUCBGUk9NIDEtNTAwMCBBTkQgU1RPUkUgQUxMIFRIRSBOVU1CRVJTIFdISUNIIEFSRSBQUklNRSBJTiBBTiBBUlJBWS4KICAgICAgICAvLyBJIEFNIFRBS0lORyBUSEUgTElNSVQgQVMgNTAwMCBCRUNBVVNFIFRIRSBDT05TVFJBSU5UUyBHSVZFTiBJTiBUSEUgUFJPQkVMRU0gSVMgIlggQU5EIFkiPD0xMDAwLiBJRiBUSEVOIFRIRSBUT1RBTCBTVU0gV0lMTCBOT1QgRVhDRUVEIDIwMDAuIFNPIFdFIE5FRUQgVE8gQ0FMQ1VMQVRFIE9OTFkgUFJJTUVTIFVQVE8gVEhFIE5FWFQgUFJJTUUgTlVNQkVSIEFGVEVSIDIwMDAKICAgICAgICAvLyBZT1UgSEFWRSBUTyBQUkUtQ09NUFVURSBUSEUgUFJJTUVTIE9VVFNJREUgVEhFICBXSElMRSBMT09QLUVMU0UgVEhBVCBXSUxMIEJFIEEgV0FTVEUuIFlPVSBXSUxMIEJFIFBSRS1DT01QVVRJTkcgRUFDSCBUSU1FLgogICAgICAgIC8vIFNVUFBPU0UgWU9VIEtOT1cgSE9XIFRPIEZJTkQgQUxMIFRIRSBQUklNRSBOVU1CRVJTIEJFV1RFRU4gVEhFIEFCT1ZFIFJBTkdFIEFORCBNT1ZJTkcgVE8gVEhFIE5FWFQgU1RFUAogICAgICAgIC8vTUFLRSBBIExJTkVBUiBTRUFSQ0ggSU4gVEhFIEFSUkFZIFNVQ0ggVEhBVCBGSU5EIFRIRSBGSVJTVCBOVU1CRVIgVEhBVCBJUyBHUkVBVEVSIFRIQU4gWCtZLgogICAgICAgIC8vQlJFQUsgVEhFIExPT1AgQU5EIFBSSU5UIFRIRSBESUZGRVJFTkNFIEJFVFdFRU4gVEhBVCBOVU1CRVIgQU5EIFgrWS4gWU9VUiBBTlNXRVIgV0lMTCBCRSBBQ0NFUFRFRCA6KQogICAgICAgIGludCBzdW09eCt5OwogICAgICAgICBmb3IoaW50IGk9MDtpPHNpemVvZihhcnIpL2FyclswXTtpKyspCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICBpZihhcnJbaV0+c3VtKQogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGFucz1hcnJbaV0tc3VtOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgfSAKICAgICAgICAgICAgICAgIAogICAgICAgICAgICB9CiAgICAgICAgICBwcmludGYoIiVkXG4iLGFucyk7CiAgICAgICAgICAKICAgIH0KICAgIHJldHVybiAwOwp9CiAK